DAO模式在現(xiàn)在的開發(fā)中應用非常的廣泛,它可以幫助我們實現(xiàn)持久化邏輯和業(yè)務邏輯的分離,同時實現(xiàn)對多種持久化實現(xiàn)的支持。當然現(xiàn)在你可以通過 hibernate來實現(xiàn)對多種持久化的支持,由于新的技術(shù)新的方式的出現(xiàn),DAO也相應的做出了一些調(diào)整,比如泛型DAO,在SpringSide中有 很還得例子可以參考這方面的實現(xiàn)。
這里聊下傳統(tǒng)意義上的DAO模式(在閻宏的JAVA與模式書中有詳細的介紹),需要注意的幾個方面:
1、不要DAO中出現(xiàn)業(yè)務邏輯
DAO只需關(guān)注持久化部分,可以通過Facade來控制事務的邊界,從而提高DAO的復用性,在不同的事務策略中應用
2、不要過多的在 DAO層捕捉異常
在很多的開發(fā)中,會喜歡使用Checked Exception,拋到servcie層、再到action層,其實在DAO中發(fā)生的異常常常是不可恢復的(比如DB的連接問題),所以應該選擇 RuntimeException,我們所需要的只是log的記錄并通知管理員,并通過全局的異常處理畫面告之。
暫時這些,由于ORM的懶加載技術(shù),在DAO中可能會有些調(diào)整,為了增加DAO的復用性,這方面的技術(shù)也應該剝離出來,不過暫時還沒這么處理過,所以無法總結(jié),希望有這方面經(jīng)驗的人提供一些
更多詳情請參見:www.hao-se.cn