新聞中心

EEPW首頁(yè) > 設(shè)計(jì)應(yīng)用 > 設(shè)計(jì)模式在業(yè)務(wù)邏輯層中的應(yīng)用

設(shè)計(jì)模式在業(yè)務(wù)邏輯層中的應(yīng)用

作者: 時(shí)間:2009-09-06 來(lái)源:網(wǎng)絡(luò) 收藏

本文引用地址:http://2s4d.com/article/261221.htm

(4)有助于提升系統(tǒng)的可移植性。模式通過(guò)將數(shù)據(jù)訪問(wèn)劃分為抽象層和實(shí)現(xiàn)層,分離數(shù)據(jù)使用和數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)細(xì)節(jié)。這意味著業(yè)務(wù)層與數(shù)據(jù)訪問(wèn)的底層細(xì)節(jié)無(wú)關(guān),也就是說(shuō),可以在保持上層機(jī)構(gòu)不變的情況下,通過(guò)切換底層實(shí)現(xiàn)來(lái)修改數(shù)據(jù)訪問(wèn)的具體機(jī)制,提高了系統(tǒng)的可復(fù)用性。

(5)組件依賴于系統(tǒng),提供訪問(wèn)接口,只要沒(méi)有重構(gòu),DAO層通常無(wú)須改寫(xiě)。DAO層透明地分離數(shù)據(jù)庫(kù)與業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),而無(wú)須關(guān)心持久層訪問(wèn)的實(shí)現(xiàn)。

(6)DAO模式的進(jìn)一步改良。由于DAO層已實(shí)現(xiàn)所有的數(shù)據(jù)訪問(wèn),業(yè)務(wù)邏輯層只需調(diào)用DAO接口,因此業(yè)務(wù)邏輯層要使用Facade模式包裝DAO。為實(shí)現(xiàn)跨數(shù)據(jù)庫(kù)平臺(tái)移植,支持不同數(shù)據(jù)訪問(wèn)機(jī)制之間的可配置切換,需在DAO層引入Factorv模式、Proxy模式和Strategy模式,則可方便地在不同數(shù)據(jù)存儲(chǔ)方式間切換。然而,采用DAO模式,系統(tǒng)在請(qǐng)求數(shù)據(jù)端和數(shù)據(jù)服務(wù)端之間增加一層,增加了系統(tǒng)的復(fù)雜度;新增加的一層需要額外的設(shè)計(jì)與實(shí)現(xiàn),增加了工作量;還需引入工廠甚至抽象工廠,增加了設(shè)計(jì)的復(fù)雜度??偟膩?lái)說(shuō),DAO將數(shù)據(jù)持久層與業(yè)務(wù)邏輯層分離,提高了軟件的可擴(kuò)展性,可維護(hù)性和可復(fù)用性。

4.2 DAO實(shí)現(xiàn)

DAO對(duì)象也是。Java對(duì)象,只是它們提供數(shù)據(jù)庫(kù)訪問(wèn)的能力。數(shù)據(jù)庫(kù)的訪問(wèn)可歸納為創(chuàng)建(Create)、查詢(Read)、更新(Update)、刪除(Delete)4種基本操作,即常說(shuō)的CRUD操作。DAO模式通常與工廠模式一起使用,建議面向接口編程,為每個(gè)DAO實(shí)現(xiàn)類編寫(xiě)接口,DAO調(diào)用者使用接口,而不是具體的實(shí)現(xiàn)類。當(dāng)然,DAO對(duì)象需要值對(duì)象來(lái)傳值,值對(duì)象就是普通的JavaBean。以下是一個(gè)DAO的示例。圖3為數(shù)據(jù)訪問(wèn)對(duì)象的參與對(duì)象和它們之間的調(diào)用關(guān)系。圖4為該示例的詳細(xì)類圖。


該DAO示例包含文件:DAO接口類、DAO接口實(shí)現(xiàn)類、DaoFactory類、PersonBean類、DBConn類、Test類。接口里定義 DAO對(duì)象必須提供方法,PersonBean是一個(gè)普通的JavaBean,DAO對(duì)象的實(shí)現(xiàn)類為接口的全部方法提供實(shí)現(xiàn)。程序中還用到工具類 DBConn,該工具類主要用于獲得數(shù)據(jù)庫(kù)連接,通過(guò)連接獲得Statement對(duì)象,并提供釋放Statement對(duì)象、關(guān)閉連接的方法。

程序?qū)BConn對(duì)象設(shè)計(jì)成單態(tài)模式。至此,完整的DAO實(shí)例編寫(xiě)完成。程序主要提供3個(gè)組件:傳值的JavaBean類,DAO對(duì)象的接口,DAO對(duì)象的實(shí)現(xiàn)類,實(shí)現(xiàn)類包括所用的工具類。DAO模式通常與工廠模式相結(jié)合,DAO工廠負(fù)責(zé)產(chǎn)生DAO實(shí)例。兩者結(jié)合可更好地實(shí)現(xiàn)業(yè)務(wù)組件與持久層組件的解耦。業(yè)務(wù)組件只需獲取DAO工廠實(shí)例,然后由DAO工廠實(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。


上一頁(yè) 1 2 下一頁(yè)

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉