bbo268
2009-04-10 17:39
dao会经常变吗?

非要用接口吗?

从jdbc 到hibernate 到jpa

哪次变动了dao?

byduke
2009-04-17 00:42
我觉得业务接口和DAO接口是否需要和楼主项目大小有关系,如果你们架构比较稳定,项目也不太大,而且开发方式比较单一,其实不用接口一样可以完成,但是如果你们架构本身稳定性一般,而且后期维护可能涉及到层内部的升级,比如从JDBC到HIBERNATE的升级过程,而且业务逻辑方面变动性也比较强,那我推荐你使用接口交互。

很简单的道理

比如SERVICE 和 DAO 交互中,在SERVICE 中看到的是 DAO的实现类,如果后期涉及到从JDBC到HIBERNATE的升级,或者是发现原本的DAO实现不够稳定,需要在不影响其他功能正常开发的情况下修改DAO的实现,那么你只需要去写一个完善的DAO实现类,然后注入到原本的SERVICE中就可以了。而实现类直接耦合则意味着可变化的范围比较小。

其实楼主可以去研究一下IOC以及DI 这两个概念,对于接口应该会有很多领悟的。

woniufly
2009-04-18 16:48
记得当初这个问题也是令我想了很久,我总是在想,为什么系统要这样设计,为什么,我要知道原因,而不是照猫画虎,楼上说的好,理解接口就是为了解耦,这是关键点,首先来回答你第一个问题,为什么要用DAO接口,DAO是数据访问对象,你在业务逻辑层访问数据库的时候,只要调用DAO接口的方法就好,至于这个DAO的实现类是用HIBERNATE技术也好,还是用JDBC来实现也好,可以灵活的变换DAO实现类即可,当然一般很少也不会去变动技术架构,我现在就没有用DAO接口,直接让业务逻辑层及继承HibernateDaoSupport,第二、为什么需要业务逻辑接口,同理也是为了解耦,在action里面调用业务逻辑接口就好,同时spring框架也是针对接口编程,针对接口编程我们可以利用动态代理的机制,方便的在spring里面配置我们想要的事务机制,可以很好的实现AOP机制,这是我个人的体会,说的不对的地方,还请大家指正,希望对你有些帮助。

猜你喜欢
2Go 上一页 1 2