新聞中心

        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ò) 收藏
        引言

        傳統(tǒng)軟件應(yīng)用系統(tǒng)一般采用3層應(yīng)用框架,業(yè)務(wù)邏輯層代碼中混雜各種調(diào)用語(yǔ)句,嚴(yán)重影響系統(tǒng)的可擴(kuò)展性、可復(fù)用性和可維護(hù)性。

        設(shè)計(jì)可復(fù)用的面向?qū)ο筌浖泻芏嚯y點(diǎn)。如找到相關(guān)對(duì)象;以適當(dāng)?shù)牧6葘⑵錃w類;定義類的接口和繼承層次,建立對(duì)象之間的基本關(guān)系;要對(duì)現(xiàn)在的問(wèn)題有針對(duì)性,同時(shí)對(duì)將來(lái)的問(wèn)題和需求也有足夠的通用性;避免重復(fù)設(shè)計(jì)或盡可能少做重復(fù)設(shè)計(jì)等。

        采用可有效解決這些難點(diǎn),從而簡(jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。通過(guò)采用,能大大提高系統(tǒng)的可擴(kuò)展性、可重用性和可維護(hù)性,并能降低系統(tǒng)開發(fā)難度,提高開發(fā)效率。已成為當(dāng)前乃至今后軟件工程研究領(lǐng)域的一大熱點(diǎn),并被認(rèn)為是繼OOP技術(shù)之后的又一重大突破。

        首先簡(jiǎn)要介紹設(shè)計(jì)模式,然后分析傳統(tǒng)3層架構(gòu)開發(fā)模型的優(yōu)缺點(diǎn),充分考慮系統(tǒng)的可擴(kuò)展性,可復(fù)用性,可維護(hù)性,從軟件設(shè)計(jì)模式角度提出改進(jìn)方法,并給出研究實(shí)例。

        2 設(shè)計(jì)模式

        每一個(gè)模式描述一個(gè)在不斷重復(fù)發(fā)生的問(wèn)題,以及該問(wèn)題解決方案的核心。這樣就能多次使用該方案而不必重復(fù)勞動(dòng)。設(shè)計(jì)模式是面向?qū)ο筌浖O(shè)計(jì)過(guò)程中記錄的知識(shí)和經(jīng)驗(yàn),用一系列類結(jié)構(gòu)和對(duì)象來(lái)具體描述其含義。設(shè)計(jì)模式通過(guò)復(fù)用面向?qū)ο笤O(shè)計(jì)的解決方案,從而更加簡(jiǎn)單方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu),將已證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開發(fā)者更加容易理解其設(shè)計(jì)思路。設(shè)計(jì)模式可幫助設(shè)計(jì)者做出有利于系統(tǒng)復(fù)用選擇,避免損害系統(tǒng)復(fù)用性,通過(guò)提供一個(gè)顯式類和對(duì)象作用關(guān)系及它們之間潛在聯(lián)系說(shuō)明規(guī)范,設(shè)計(jì)模式甚至能夠提高已有系統(tǒng)的文檔管理和系統(tǒng)維護(hù)的有效性。設(shè)計(jì)模式確定所包含的類和實(shí)例及其角色、協(xié)作方式、職責(zé)分配。通過(guò)刻畫部件靜態(tài)和動(dòng)態(tài)結(jié)構(gòu)及其之間的合作關(guān)系,設(shè)計(jì)模式成功應(yīng)用于解決商業(yè)數(shù)據(jù)處理、電子通信、圖形用戶界面、、分布式通信軟件等軟件構(gòu)造中。

        3 傳統(tǒng)的3層架構(gòu)開發(fā)模型

        目前,在Internet/Intranet環(huán)境中,企業(yè)級(jí)的應(yīng)用軟件系統(tǒng)大多采用3層應(yīng)用框架:表示層、業(yè)務(wù)邏輯層和數(shù)據(jù)層(圖1)。在這種層次結(jié)構(gòu)的軟件框架中。每層為其上一層提供服務(wù)(服務(wù)提供者),并作為其下一層的客戶(服務(wù)消費(fèi)者),內(nèi)部的層只對(duì)相鄰的層可見(jiàn),從而構(gòu)成一個(gè)具有可移植性、可擴(kuò)充性的兼容平臺(tái)。

        本文引用地址:http://www.104case.com/article/261221.htm
        但也存在顯著的缺點(diǎn):在開發(fā)多個(gè)應(yīng)用軟件系統(tǒng)的過(guò)程中,不同的應(yīng)用軟件系統(tǒng)之間耦合度不是很好;層與層之間代碼混亂;訪問(wèn)的方式不同,如JDBC, Hibernate或JDO,因此,在各種數(shù)據(jù)庫(kù)之間移植就需修改很多地方,業(yè)務(wù)邏輯層也需跟著修改,不能采用一致的編程模型,系統(tǒng)的可復(fù)用性、可維護(hù)性不是很理想。

        4 改進(jìn)的4層架構(gòu)開發(fā)模型

        基于上述分析,為提高軟件的開發(fā)效率,這里從設(shè)計(jì)模式角度出發(fā),提出把業(yè)務(wù)邏輯層進(jìn)一步分出一層,單獨(dú)形成一個(gè)數(shù)據(jù)接口層。數(shù)據(jù)接口層屏蔽各種底層數(shù)據(jù)庫(kù)之間的差異,負(fù)責(zé)與底層數(shù)據(jù)庫(kù)之間的連接。形成4層軟件體系結(jié)構(gòu)框架,從上到下依次是:表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)接口層、數(shù)據(jù)層,如圖2所示。表示層是應(yīng)用軟件進(jìn)行人機(jī)交互的接口;業(yè)務(wù)邏輯層負(fù)責(zé)處理用戶的業(yè)務(wù)請(qǐng)求;數(shù)據(jù)接口層負(fù)責(zé)與底層數(shù)據(jù)庫(kù)之間的交互;數(shù)據(jù)層則負(fù)責(zé)存儲(chǔ)數(shù)據(jù)。

        4.1 設(shè)計(jì)模式

        數(shù)據(jù)接口層采用數(shù)據(jù)訪問(wèn)對(duì)象(Data Access Ob-iect)模式。該模式實(shí)際是Adapter模式和Bridge模式的混合體,對(duì)象提供數(shù)據(jù)庫(kù)訪問(wèn)的基本操作,如增加、刪除、修改、查詢等。 DAO層以面向?qū)ο蟮姆绞椒庋b數(shù)據(jù)庫(kù)操作。DAO組件完全專注于數(shù)據(jù)訪問(wèn)實(shí)現(xiàn),業(yè)務(wù)層代碼無(wú)須關(guān)心底層數(shù)據(jù)庫(kù)訪問(wèn)的實(shí)現(xiàn),從而降低了層之間的耦合。

        DAO設(shè)計(jì)模式的優(yōu)點(diǎn):

        (1)DAO模式抽象出數(shù)據(jù)訪問(wèn)方式,業(yè)務(wù)邏輯層訪問(wèn)數(shù)據(jù)源時(shí)完全感覺(jué)不到數(shù)據(jù)源的存在。軟件工廠中有一條很重要的法則:一個(gè)對(duì)象對(duì)其他對(duì)象的了解越少越好,了解越少就意味著依賴越少,可復(fù)用性越高。

        (2)DAO將數(shù)據(jù)訪問(wèn)集中在獨(dú)立的一層,因?yàn)樗械臄?shù)據(jù)訪問(wèn)都由DAO代理,這層獨(dú)立的DAO將數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)和系統(tǒng)的其余部分剝離,將數(shù)據(jù)訪問(wèn)集中,使得系統(tǒng)更具可維護(hù)性。

        (3)DAO降低了業(yè)務(wù)邏輯層的復(fù)雜度。DAO管理復(fù)雜的數(shù)據(jù)訪問(wèn),從而簡(jiǎn)化了業(yè)務(wù)邏輯層。所有與數(shù)據(jù)訪問(wèn)的實(shí)現(xiàn)有關(guān)的代碼(例如SOL語(yǔ)言等)都不寫在業(yè)務(wù)邏輯層里,業(yè)務(wù)邏輯層可集中處理業(yè)務(wù)邏輯,提高了代碼的可讀性和生產(chǎn)率。

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

        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 伊通| 自治县| 临沭县| 临潭县| 稷山县| 深圳市| 孝义市| 呼伦贝尔市| 杭锦后旗| 普兰县| 广饶县| 青岛市| 长沙市| 雷州市| 灵寿县| 八宿县| 离岛区| 安多县| 临夏县| 安龙县| 吉安县| 交口县| 镇坪县| 沅陵县| 庆安县| 澄城县| 莆田市| 武山县| 信宜市| 阿合奇县| 龙山县| 昭苏县| 凤台县| 湛江市| 台湾省| 青海省| 北辰区| 抚宁县| 门头沟区| 淮南市| 武夷山市|