設(shè)計(jì)模式在業(yè)務(wù)邏輯層中的應(yīng)用
4.2 DAO實(shí)現(xiàn)
DAO對(duì)象也是。Java對(duì)象,只是它們提供數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的能力。數(shù)據(jù)庫(kù)的訪(fǎng)問(wèn)可歸納為創(chuàng)建(Create)、查詢(xún)(Read)、更新(Update)、刪除(Delete)4種基本操作,即常說(shuō)的CRUD操作。DAO模式通常與工廠(chǎng)模式一起使用,建議面向接口編程,為每個(gè)DAO實(shí)現(xiàn)類(lèi)編寫(xiě)接口,DAO調(diào)用者使用接口,而不是具體的實(shí)現(xiàn)類(lèi)。當(dāng)然,DAO對(duì)象需要值對(duì)象來(lái)傳值,值對(duì)象就是普通的JavaBean。以下是一個(gè)DAO的示例。圖3為數(shù)據(jù)訪(fǎng)問(wèn)對(duì)象設(shè)計(jì)模式的參與對(duì)象和它們之間的調(diào)用關(guān)系。圖4為該示例的詳細(xì)類(lèi)圖。本文引用地址:http://www.2s4d.com/article/157858.htm
該DAO示例包含文件:DAO接口類(lèi)、DAO接口實(shí)現(xiàn)類(lèi)、DaoFactory類(lèi)、PersonBean類(lèi)、DBConn類(lèi)、Test類(lèi)。接口里定義 DAO對(duì)象必須提供方法,PersonBean是一個(gè)普通的JavaBean,DAO對(duì)象的實(shí)現(xiàn)類(lèi)為接口的全部方法提供實(shí)現(xiàn)。程序中還用到工具類(lèi) DBConn,該工具類(lèi)主要用于獲得數(shù)據(jù)庫(kù)連接,通過(guò)連接獲得Statement對(duì)象,并提供釋放Statement對(duì)象、關(guān)閉連接的方法。
程序?qū)BConn對(duì)象設(shè)計(jì)成單態(tài)模式。至此,完整的DAO實(shí)例編寫(xiě)完成。程序主要提供3個(gè)組件:傳值的JavaBean類(lèi),DAO對(duì)象的接口,DAO對(duì)象的實(shí)現(xiàn)類(lèi),實(shí)現(xiàn)類(lèi)包括所用的工具類(lèi)。DAO模式通常與工廠(chǎng)模式相結(jié)合,DAO工廠(chǎng)負(fù)責(zé)產(chǎn)生DAO實(shí)例。兩者結(jié)合可更好地實(shí)現(xiàn)業(yè)務(wù)組件與持久層組件的解耦。業(yè)務(wù)組件只需獲取DAO工廠(chǎng)實(shí)例,然后由DAO工廠(chǎng)實(shí)例負(fù)責(zé)產(chǎn)生DAO組件。業(yè)務(wù)組件則面向DAO接口編程,無(wú)須關(guān)心DAO的具體實(shí)現(xiàn)。
5 結(jié)束語(yǔ)
分析傳統(tǒng)3層軟件體系結(jié)構(gòu)的優(yōu)缺點(diǎn),從軟件模式角度出發(fā),對(duì)其進(jìn)行改進(jìn),提出4層開(kāi)發(fā)模型,提高了系統(tǒng)的可擴(kuò)展性、可復(fù)用性、可維護(hù)性,并給出一個(gè)具體應(yīng)用實(shí)例實(shí)現(xiàn)DAO設(shè)計(jì)模式。
評(píng)論