DAO看似是一个非常简单的模式,但这个模式却十分重要,它可以帮助我们实现持久化逻辑和业务逻辑的分离;它可以帮助我们实现对多种持久化实现的支持。
同时,DAO模式并没有看起来这么简单,要真正发挥它的威力需注意的方面很多,而这些方面常常被大家忽略,以下是本人总结的一些最佳实践。
1 不要在DAO上控制事务的边界
应该在Façade层控制事务的边界,这样可以提高DAO的复用性,使它适用于不同的事务策略。
2 不要过分使用Checked Exception
开发者常常会将DAO中的各种异常通通捕捉并通过Checked Exception抛出,其实这是中不好的习惯,因为DAO中发生的异常常常是不可恢复的(如:数据库连接问题等),既然如此就应该使用RuntimeException异常抛出,使用这种异常还有一个好处就是在CMP的情况下可以自动引发事务的回滚。
3 不要在DAO中处理懒加载问题
使用Hibernate就会经常遇到懒加载问题,但是这个问题不应该在DAO中解决,这样会影响DAO的复用性,应为要加载那些对象域往往是和界面相关的,这个问题应该在Façade层中解决,应为这是离表现层较近的一层。
http://dev2dev.bea.com.cn/blog/chaocai/200806/dao_24_1070.html
蔡超
软件架构师
软件架构顾问
SCEA
IBM Certified Solution Designer for OOA&D vUML2
Chaocai2001@yahoo.com.cn