J2EE之巔

           

          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

          評(píng)論

          # re: DAO模式最佳實(shí)踐 2008-06-25 23:14 人體藝術(shù)

          對(duì),DAO中的異常處理非常重要,初學(xué)者往往會(huì)忽略,造成數(shù)據(jù)的完整性出現(xiàn)問題。  回復(fù)  更多評(píng)論   

          # re: DAO模式最佳實(shí)踐 2008-06-26 22:37 一臉大鼻涕

          我怎么看文章的意思好像是不要在dao中處理異常捏?  回復(fù)  更多評(píng)論   

          # re: DAO模式最佳實(shí)踐 2008-06-27 11:08 如坐春風(fēng)

          論點(diǎn)不錯(cuò),咋不詳細(xì)闡述一下呢?  回復(fù)  更多評(píng)論   

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(12)

          隨筆分類(54)

          隨筆檔案(59)

          文章分類(2)

          文章檔案(1)

          相冊(cè)

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 屏山县| 诸城市| 蛟河市| 碌曲县| 大埔区| 钦州市| 井冈山市| 尉氏县| 台中县| 元江| 云阳县| 黄石市| 黄大仙区| 漳平市| 盱眙县| 罗定市| 专栏| 花垣县| 芮城县| 云和县| 浏阳市| 双牌县| 龙川县| 牡丹江市| 陇川县| 波密县| 封开县| 通化市| 乐山市| 原阳县| 丹阳市| 陵川县| 仁布县| 扶沟县| 浑源县| 桐梓县| 正定县| 宜宾市| 纳雍县| 泰来县| 东丰县|