论坛首页 Java企业应用论坛

对spring中倡导的dao模式的质疑

浏览 5199 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-01-21  
DAO
在没有orm的年代,勿庸置疑dao是非常必要的,但是如果选择了orm,那么DAO的存在意义仅仅是切换不同的orm,值得考虑的是这种切换的意义到底有多大,看到DAO中风暴式的的clud方法,实在觉得不爽,在我看来,让业务层直接访问orm的模板类,牺牲切换orm功能,选择一个合适的orm,会更好一些,就像hibernate3,已经融合和sql map的功能,我们为什么要为orm切换付出代价呢?
   发表时间:2005-01-21  
agilecat 写道
在没有orm的年代,勿庸置疑dao是非常必要的,但是如果选择了orm,那么DAO的存在意义仅仅是切换不同的orm,值得考虑的是这种切换的意义到底有多大,看到DAO中风暴式的的clud方法,实在觉得不爽,在我看来,让业务层直接访问orm的模板类,牺牲切换orm功能,选择一个合适的orm,会更好一些,就像hibernate3,已经融合和sql map的功能,我们为什么要为orm切换付出代价呢?

很大程度上是个权衡。说到最后不是“要不要DAO”的问题,而是“什么时候引入多一层间接”的问题。如果你确定不会改变持久化策略,我认为很可以不用DAO,我的很多程序都是这样写的,因为Hibernate(以及Spring的封装)已经把持久化简化到非常简单了。但是有时候的确需要改变持久化策略的,比如需要把用户信息放到LDAP,比如需要通过remoting得到数据,这时候你就需要DAO。这里需要权衡。而且DAO也可以不是预先设计的,也可以是发现有需求的时候重构出来的。
0 请登录后投票
   发表时间:2005-01-21  
我觉得DAO模式是需要的.o/r mapping只是用于数据库,我们的数据源还可能是LDAP、search engineer等。这些都是比较常见的数据源,用户的信息放在LDAP中,搜索的信息(比如按关键字进行搜索)放在搜索引擎中。
0 请登录后投票
   发表时间:2005-01-21  
DAO层的抽象不是为了切换ORM的,实际上选择了一个ORM,要切换的可能性基本不存在,DAO的作用Rod Johnson在without EJB里面专门有过论述,我就不照抄了,你可以自己去看。
0 请登录后投票
   发表时间:2005-01-22  
robbin 写道
DAO层的抽象不是为了切换ORM的,实际上选择了一个ORM,要切换的可能性基本不存在,DAO的作用Rod Johnson在without EJB里面专门有过论述,我就不照抄了,你可以自己去看。


老大!这本书是不是你在翻译,怎么样了?近期能出版吗?
0 请登录后投票
   发表时间:2005-01-22  
应该快了。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics