DAO模式最佳實(shí)踐
DAO看似是一個(gè)非常簡(jiǎn)單的模式,但這個(gè)模式卻十分重要,它可以幫助我們實(shí)現(xiàn)持久化邏輯和業(yè)務(wù)邏輯的分離;它可以幫助我們實(shí)現(xiàn)對(duì)多種持久化實(shí)現(xiàn)的支持。
同時(shí),DAO模式并沒有看起來這么簡(jiǎn)單,要真正發(fā)揮它的威力需注意的方面很多,而這些方面常常被大家忽略,以下是本人總結(jié)的一些最佳實(shí)踐。
1 不要在DAO上控制事務(wù)的邊界
應(yīng)該在Façade層控制事務(wù)的邊界,這樣可以提高DAO的復(fù)用性,使它適用于不同的事務(wù)策略。
2 不要過分使用Checked Exception
開發(fā)者常常會(huì)將DAO中的各種異常通通捕捉并通過Checked Exception拋出,其實(shí)這是中不好的習(xí)慣,因?yàn)镈AO中發(fā)生的異常常常是不可恢復(fù)的(如:數(shù)據(jù)庫連接問題等),既然如此就應(yīng)該使用RuntimeException異常拋出,使用這種異常還有一個(gè)好處就是在CMP的情況下可以自動(dòng)引發(fā)事務(wù)的回滾。
3 不要在DAO中處理懶加載問題
使用Hibernate就會(huì)經(jīng)常遇到懶加載問題,但是這個(gè)問題不應(yīng)該在DAO中解決,這樣會(huì)影響DAO的復(fù)用性,應(yīng)為要加載那些對(duì)象域往往是和界面相關(guān)的,這個(gè)問題應(yīng)該在Façade層中解決,應(yīng)為這是離表現(xiàn)層較近的一層。
http://dev2dev.bea.com.cn/blog/chaocai/200806/dao_24_1070.html
蔡超
軟件架構(gòu)師
軟件架構(gòu)顧問
SCEA
IBM Certified Solution Designer for OOA&D vUML2
Chaocai2001@yahoo.com.cn
posted on 2008-06-25 21:49 超越巔峰 閱讀(3079) 評(píng)論(3) 編輯 收藏 所屬分類: Design Pattern 、Java EE