DAO看似是一个非常简单的模式,但这个模式却十分重要,它可以帮助我们实现持久化逻辑和业务逻辑的分离;它可以帮助我们实现对多种持久化实现的支持。
同时,DAO模式并没有看起来这么简单,要真正发挥它的威力需注意的方面很多,而这些方面常常被大家忽略,以下是本人总结的一些最佳实践。
不要在DAO上控制事务的边界
应该在Fa?ade层控制事务的边界,这样可以提高DAO的复用性,使它适用于不同的事务策略。
不要过分使用Checked Exception
开发者常常会将DAO中的各种异常通通捕捉并通过Checked Exception抛出,其实这是中不好的习惯,因为DAO中发生的异常常常是不可恢复的(如:数据库连接问题等),既然如此就应该使用RuntimeException异常抛出,使用这种异常还有一个好处就是在CMP的情况下可以自动引发事务的回滚。
不要在DAO中处理懒加载问题
使用Hibernate就会经常遇到懒加载问题,但是这个问题不应该在DAO中解决,这样会影响DAO的复用性,应为要加载那些对象域往往是和界面相关的,这个问题应该在Fa?ade层中解决,应为这是离表现层较近的一层。
原文出处:http://gocom.primeton.com/modules/newbb/item54047_54047.htm
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
如何满足软件开发的非功能性需求?
第一次使用已经过证明的模式和听起来的最佳,适当地时行软件开发的好处之一是,在软件中解决核心需求时,许多非功能性的需求也得到了初步解决。
-
IBM欲携手合作伙伴将网络分析洞察新服务推向中国市场
今日,IBM(NYSE: IBM)宣布合作意向,将携手国内两大实力合作伙伴,依托于领先市场的Coremetrics技术服务,在本地市场推出数字营销优化套件。
-
Odata的黄金时间(下)
官方OData已经有一年了。在这一年里,我们我看到用户的惊人增长,人们继续寻找更好的扩展器API的方法和处理客户端生态系统的多样性。
-
Odata的黄金时间(上)
你追踪过OData的演变吗?你是在问“0”吗?OData(开放数据协议)适用于查询和更新数据的一项Web协议。它提供一种解锁数据的方式,将其从竖井中解放出来。