設(shè)計(jì)模式對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的影響_第1頁(yè)
設(shè)計(jì)模式對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的影響_第2頁(yè)
設(shè)計(jì)模式對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的影響_第3頁(yè)
設(shè)計(jì)模式對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的影響_第4頁(yè)
設(shè)計(jì)模式對(duì)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的影響_第5頁(yè)
已閱讀5頁(yè),還剩1頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

經(jīng)典word整理文檔,僅參考,雙擊此處可刪除頁(yè)眉頁(yè)腳。本資料屬于網(wǎng)絡(luò)整理,如有侵權(quán),請(qǐng)聯(lián)系刪除,謝謝!1引言從上世紀(jì)60年代末開(kāi)始,由于計(jì)算機(jī)軟件對(duì)生產(chǎn)力有巨大的推動(dòng)作用,各可維護(hù)性明顯降低,軟件行業(yè)出現(xiàn)了危機(jī)。直到80年代,軟件開(kāi)發(fā)采用面向?qū)θ?,往往修改一處代碼會(huì)帶來(lái)無(wú)法預(yù)測(cè)的后果;系統(tǒng)復(fù)用率低,黏度過(guò)高等等。為了避免上述缺陷,設(shè)計(jì)出具備良好的可擴(kuò)展性、可復(fù)用性、易維護(hù)性的系統(tǒng),我們應(yīng)在系統(tǒng)設(shè)計(jì)和實(shí)踐階段采用設(shè)計(jì)模式的思想。設(shè)計(jì)模式是軟件復(fù)用技術(shù)中的一個(gè)重要概念[1]對(duì)象的軟件設(shè)計(jì)經(jīng)驗(yàn)記錄下來(lái),并予以系統(tǒng)的命名、解釋和評(píng)價(jià),使不同的開(kāi)發(fā)人員在進(jìn)行不同系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)時(shí),可以使用別人的成功經(jīng)驗(yàn)而不必為普通的、重復(fù)的問(wèn)題重新設(shè)計(jì)解決方案,使設(shè)計(jì)者更容易理解其設(shè)計(jì)思路,能為自己設(shè)計(jì)模式的種類(lèi)日益增多,相對(duì)于GoF在1994年提出的23種通用設(shè)計(jì)模式,來(lái)進(jìn)行探討。[2]2從設(shè)計(jì)原則到設(shè)計(jì)模式2.1設(shè)計(jì)原則對(duì)象有幾個(gè)原則:開(kāi)閉原則、里氏代換原則、依賴倒轉(zhuǎn)原則、接口隔離原則、合成/聚合復(fù)用原則、最小知識(shí)原則、單一職責(zé)原則和抽象原則。開(kāi)閉原則具有理性的目的。(1)開(kāi)閉原則在不修改原來(lái)代碼的情況下進(jìn)行擴(kuò)展。這樣在擴(kuò)展的同時(shí)對(duì)舊版本有很好的支持,使得系統(tǒng)更加靈活,具有很強(qiáng)的適應(yīng)性。(2)里氏代換原則現(xiàn)好的方法(相對(duì)于抽象方法而言),實(shí)際上是在設(shè)定一系列的規(guī)范和契約,雖任意修改,就會(huì)對(duì)整個(gè)繼承體系造成破壞。代碼復(fù)用的重要基礎(chǔ)。(3)合成復(fù)用原則合成是值的聚合,聚合是引用的聚合。合成和聚合都是關(guān)聯(lián)的特殊種類(lèi),聚合表示整體和部分的關(guān)系,表示“擁有”;合成則是一種更強(qiáng)的“擁有”,部分開(kāi)發(fā)中應(yīng)盡量使用合成/聚合,而不是使用繼承。(4)依賴倒轉(zhuǎn)原則編程;傳遞參數(shù),或者在組合聚合關(guān)系中,盡量引用層次高的類(lèi)。高層模塊不應(yīng)操作,把展現(xiàn)細(xì)節(jié)的任務(wù)交給他們的實(shí)現(xiàn)類(lèi)去完成。(5)接口隔離原則小的接口上。建立單一接口,不要建立龐大臃腫的接口,盡量細(xì)化接口,接口中賴一個(gè)綜合的接口更靈活。接口是設(shè)計(jì)時(shí)對(duì)外部設(shè)定的“契約”,通過(guò)分散定義不能交給一個(gè)接口。(6)抽象原則用抽象構(gòu)建框架,用實(shí)現(xiàn)擴(kuò)展細(xì)節(jié)。因?yàn)槌橄箪`活性好,適應(yīng)性廣,只要抽類(lèi)的共同屬性和方法。具體類(lèi)是不被其他類(lèi)所繼承的,即子類(lèi)繼承了抽象類(lèi)后,這個(gè)子類(lèi)不應(yīng)再被其他類(lèi)所繼承。(7)迪米特法則心做自己的事情而不去關(guān)心其他的事情,以降低耦合度。(8)單一職責(zé)原則面向?qū)ο缶幊趟枷胨赜械?,只要是模塊化的程序設(shè)計(jì),都適用單一職責(zé)原則。2.2設(shè)計(jì)模式設(shè)計(jì)模式是一些富有經(jīng)驗(yàn)的面向?qū)ο蠹夹g(shù)專家針對(duì)特定問(wèn)題而設(shè)計(jì)的成功是設(shè)計(jì)模式。[1]代碼編制真正工程化,如同大廈的結(jié)構(gòu)一樣,設(shè)計(jì)模式是軟件工程的基石脈絡(luò)。一般而言,一個(gè)模式有四個(gè)基本要素:模式名稱、問(wèn)題(描述應(yīng)該在何時(shí)使用模式)、解決方案(描述設(shè)計(jì)的組成成分、它們之間的相互關(guān)系及各自的職責(zé)和協(xié)作方式)、效果(描述模式應(yīng)用的效果及使用模式應(yīng)權(quán)衡的問(wèn)題)。2.3設(shè)計(jì)思想種可重用的解決方案,在軟件工程中一個(gè)設(shè)計(jì)模式往往能解決一類(lèi)軟件設(shè)計(jì)問(wèn)和體系結(jié)構(gòu),采用設(shè)計(jì)模式的軟件系統(tǒng)具有更好的可維護(hù)性。軟件在不斷進(jìn)化,需求在不斷改變,所以軟件應(yīng)該適應(yīng)變化。設(shè)計(jì)模式是[3]讓變化的影響最小;封裝復(fù)雜性,提供簡(jiǎn)單的接口;針對(duì)接口編程,而不是針對(duì)實(shí)現(xiàn)編程;最大程度地繼承、組合、委托、多態(tài)和參數(shù)化。職責(zé)之間相關(guān)程度和集中程度的度量[4]相關(guān)的職責(zé)不要分派給同一個(gè)類(lèi)。UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問(wèn)層(DAL)。區(qū)分層次的目的即為了高內(nèi)聚,低耦合的思想。可復(fù)用面向?qū)ο筌浖到y(tǒng)現(xiàn)在一般劃分為兩大類(lèi):應(yīng)用程序工具箱和框架,我們平時(shí)開(kāi)發(fā)的具體軟件都是應(yīng)用程序,Java的API屬于工具箱;而框架是構(gòu)成一類(lèi)特定軟件可復(fù)用設(shè)計(jì)的一組相互協(xié)作的類(lèi),EJB是Java應(yīng)用于企業(yè)計(jì)算中共同的設(shè)計(jì)決策,框架強(qiáng)調(diào)設(shè)計(jì)復(fù)用,因此框架設(shè)計(jì)中必然要使用設(shè)計(jì)模式。,熟悉這些設(shè)計(jì)模式可幫助我們掌握EJB、J2EE等框架的結(jié)構(gòu)。3GRASP職責(zé)分配模式與設(shè)計(jì)模式的應(yīng)用價(jià)值GRASP作為設(shè)計(jì)模式來(lái)描述對(duì)象設(shè)計(jì)和職責(zé)分配的基本原則。GRASP原Adapters所需的Adapter,我們應(yīng)用工廠模式,設(shè)計(jì)一個(gè),按系統(tǒng)當(dāng)前的要求實(shí)例化相應(yīng)的;為了系統(tǒng)中同一類(lèi)的Adapters實(shí)例具有唯一的創(chuàng)建邏輯,我們應(yīng)用單實(shí)例類(lèi)模式,使Factory在系統(tǒng)中僅有唯一的一個(gè)實(shí)例。的維護(hù)量。4小結(jié)方向

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論