J2EE SSH 架构中的DAO, BIZ

前几天跟朋友讨论了下接口,讨论着发现自己越绕越晕了,朋友都直接说感觉SSH中的接口怎么就像是个累赘啊。比如:interfaceUserDao中的方法List<User>f... 前几天跟朋友讨论了下接口,讨论着发现自己越绕越晕了,朋友都直接说感觉SSH中的接口怎么就像是个累赘啊。
比如:
interface UserDao中的方法
List<User> findAll();
User get(Integer id);
class UserDaoImpl implements UserDao {
List<User> findAll() {
//.......
}
User get(Integer id) {
// ....
}
}
Biz也都差不多都是这样,所以朋友就直接说,感觉这接口都是累赘了,还不如不要。
有没哪位高手,出来讲解下,具体的作用?最好能给个具体体现的例子
展开
 我来答
Paerhaty
2011-08-30 · TA获得超过263个赞
知道小有建树答主
回答量:258
采纳率:0%
帮助的人:226万
展开全部
SSH 中 的 S 的 AOP 是通过接口编程的, 你可以看看spring 的配置文件
配置代理的时候,class里配置的是接口全路径,而不是实现类
为什么
为了扩展方便,实现方便,继承方便,
这就好像将工作分类化,
写接口,相当于你盖楼,钢筋混凝土你都上去了....一个个毛坯房你都建好了(但是,不能住人)
实现接口(装修房子呗)
你房子装修的怎么样,和你这楼的结构不会有直接的关系,你爱怎么装修,架子就那样,你看着办

就这样,设计和开发分开跑....各走各的,互补影响...
何乐而不为...

接口你可以扔到
但你想一想,如果以后你想再装修一次房子,你是不是为了拆两根管子,就得需要把和这管子想连的管子全废掉..(直到把楼拆了)...
Bucher03
2011-08-25
知道答主
回答量:51
采纳率:0%
帮助的人:15.7万
展开全部
您想在自己的网站上展示百度“知道”上的问答吗?
更多追问追答
追问
?????????????????
追答
看来你的mvc学得不咋滴啊,mvc不就是让你晓得什么叫分层的吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d9db687
2011-08-25 · TA获得超过794个赞
知道答主
回答量:285
采纳率:0%
帮助的人:51.1万
展开全部
这是从业务角度的一种逻辑分层,虽然代码量会增加,但是这样分层降低了整个项目的耦合度、提供了很高的可扩展性,以后项目维护起来也会方便很多。你这个还只是包的分层,像我们现在做的项目是用项目来分层的,一个项目为了分层,拆成了6个项目,也就有6层。
建议你去看一下MVC,以及SOA架构反面的资料
追问
我不是问分层的作用.是问那个接口的作用,为什么需要设计一个DAO, 在一个DAOImpl来实现,直接用DAOImpl, 不要那个DAO接口了,有什么坏处吗?
追答
接口的作用就是降低系统的耦合度,提高系统可扩展性,实际上就是面向接口编程,如果以后别人的项目也要来调用你写的方法,就可以以接口的形式提供给别人调用。
面向接口编程优势:
1.更加抽象,更加面向对象
2.提高编程的灵活性
3.提高可维护性
4.代码结构更清晰
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d378c92e4
2011-08-25 · TA获得超过153个赞
知道答主
回答量:56
采纳率:0%
帮助的人:73.9万
展开全部
作用就是当你的数据变了,比如从sqlserver换成了oracle,你只要修改接口的实现就可以了,不用影响调用接口之上的代码,特别是一个项目由多个project组成,这样作用就更加明显了。
追问
为什么需要设计一个DAO, 在一个DAOImpl来实现,直接用DAOImpl, 不要那个DAO接口了,有什么坏处吗?就算改了实现,我不该方法名,参数,不是一样吗?都不需要改接口之上的实现。而且用了Hibernate的话,数据库对变更对持久层的代码影响并不大
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式