版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
清華大學(xué)出版社1第9章 設(shè)計(jì)模式
清華大學(xué)出版社2內(nèi)容提要9.1什么是設(shè)計(jì)模式 9.2軟件體系結(jié)構(gòu)描述語言 9.2.1WRIGHTADL 9.2.2圖形化體系結(jié)構(gòu)描述語言 9.3設(shè)計(jì)模式的主要作用 9.4常用設(shè)計(jì)模式解析 9.4.1創(chuàng)建型設(shè)計(jì)模式 9.4.2結(jié)構(gòu)型設(shè)計(jì)模式 9.4.3 行為型設(shè)計(jì)模式 9.5 深入認(rèn)識(shí)設(shè)計(jì)模式 9.6 小結(jié) 清華大學(xué)出版社39.1什么是設(shè)計(jì)模式正如GradyBooch所說,“軟件領(lǐng)域的設(shè)計(jì)模式,為開發(fā)人員提供了使用專家設(shè)計(jì)經(jīng)驗(yàn)的有效途徑”。為研究這一問題,Alexander對建筑物、城鎮(zhèn)、街道等等實(shí)際上人類為自身所建造的各種生活空間的方方面面進(jìn)行了大量觀察。他發(fā)現(xiàn),在特定的建筑物中,優(yōu)秀的結(jié)構(gòu)都有一些共同之處。設(shè)計(jì)模式的核心思想,是總結(jié)和積累了前人成功的設(shè)計(jì)經(jīng)驗(yàn),通過對這些經(jīng)驗(yàn)的學(xué)習(xí),使得人們在面對新的設(shè)計(jì)問題時(shí)不同再重復(fù)所有的環(huán)節(jié),而是盡量套用已有的模式實(shí)施,以提高編程的效率。清華大學(xué)出版社4設(shè)計(jì)模式四人組GoF(“四人幫”,又稱GangofFour,即ErichGamma,RichardHelm,RalphJohnson&JohnVlissides四人)的《設(shè)計(jì)模式》,原名《DesignPatterns:ElementsofReusableObject-OrientedSoftware》,第一次將設(shè)計(jì)模式提升到理論高度,并將之規(guī)范化。清華大學(xué)出版社59.2軟件體系結(jié)構(gòu)描述語言軟件體系結(jié)構(gòu)描述語言(ArchitecturalDescriptionLanguage,ADL)的研究,源于20世紀(jì)70年代的模塊互連語言,到20世紀(jì)90年代中后期達(dá)到了一個(gè)高潮,它是用來描述軟件系統(tǒng)的總體結(jié)構(gòu)的語言。代表的體系結(jié)構(gòu)描述語言有Wright、Rapide、ACME、ABC/ADL等。這些體系結(jié)構(gòu)描述語言基于不同的形式基礎(chǔ),有著各自獨(dú)特的適用場合。清華大學(xué)出版社69.2.1WRIGHTADLWRIGHT其形式基礎(chǔ)為CSP,適合于對軟件體系結(jié)構(gòu)的性質(zhì)進(jìn)行自動(dòng)化的驗(yàn)證。它由三個(gè)部分組成。第一個(gè)部分定義若干構(gòu)件(Component)和連接子(Connector)類型。構(gòu)件具有一組端口和一個(gè)構(gòu)件規(guī)范。第二個(gè)部分是一組構(gòu)件實(shí)例和連接子實(shí)例(Instances),指定了再次配置中實(shí)際出現(xiàn)的實(shí)體。第三個(gè)部分是一組聯(lián)接(Attachments)它們將構(gòu)件實(shí)例的端口與連接子實(shí)例的角色聯(lián)系起來,從而構(gòu)成一個(gè)完整的系統(tǒng)。WRIGHT支持對體系構(gòu)件的風(fēng)格進(jìn)行描述,以刻畫一類體系結(jié)構(gòu)。清華大學(xué)出版社79.2.2圖形化體系結(jié)構(gòu)描述語言圖形化體系結(jié)構(gòu)的表達(dá)工具,是由矩形框和有向線段組合而成的圖形它是對于軟件體系結(jié)構(gòu)的描述和表達(dá),一種簡潔易懂且使用廣泛的方法。在這種方法中,矩形框代表抽象構(gòu)件,框內(nèi)標(biāo)注的文字為抽象構(gòu)件的名稱,有向線段代表輔助各構(gòu)件進(jìn)行通訊、控制或關(guān)聯(lián)的連接件。體系結(jié)構(gòu)描述清華大學(xué)出版社99.3設(shè)計(jì)模式的主要作用設(shè)計(jì)模式的作用和研究意義表現(xiàn)在:優(yōu)化的設(shè)計(jì)經(jīng)驗(yàn)。設(shè)計(jì)模式為開發(fā)者提供了良好的經(jīng)過優(yōu)化的設(shè)計(jì)經(jīng)驗(yàn)。模式中所描述的解決方案是人們從不同的角度對某個(gè)問題精細(xì)研究,然后的出來最通用的解決方案。較高的復(fù)用性。設(shè)計(jì)模式為重用面向?qū)ο蟠a提供了一種方便途徑,使得復(fù)用某些成功的設(shè)計(jì)和結(jié)構(gòu)更加容易。沒有經(jīng)驗(yàn)的程序員也可借助設(shè)計(jì)模式提高設(shè)計(jì)水平。多個(gè)模式可以組合起來構(gòu)成完整的系統(tǒng),這種基于模式的設(shè)計(jì)具有更大的靈活性、可擴(kuò)展性和更好的可重用性。豐富的表達(dá)能力。在面向?qū)ο蟮木幊讨?,軟件編程人員往往更加注重以往代碼的重用性和可維護(hù)性。通過提供某些類和對象的相互作用關(guān)系以及它們之間潛在聯(lián)系的說明規(guī)范,設(shè)計(jì)模式甚至能夠提高系統(tǒng)維護(hù)的有效性。降低耦合性。設(shè)計(jì)模式的基本思想,是將程序中可能變化的部分與不變的部分分離,盡量減少對象之間的耦合,當(dāng)某些對象發(fā)生變化時(shí),不好導(dǎo)致其他對象都發(fā)生變化。這樣使得代碼更容易擴(kuò)展和維護(hù),而且也讓成功程序更容易被讀懂。清華大學(xué)出版社109.4常用設(shè)計(jì)模式解析9.4.1創(chuàng)建型設(shè)計(jì)模式1. 簡單工廠(SimpleFactory)模式簡單工廠模式:專門定義一個(gè)類來負(fù)責(zé)創(chuàng)建其他類的實(shí)例,被創(chuàng)建的實(shí)例通常都具有共同的父類。它又稱為靜態(tài)工廠方法模式,屬于類的建型模式。SimpleFactory模式根據(jù)提供給它的參數(shù)數(shù)據(jù),返回幾個(gè)可能類中的一個(gè)類的實(shí)例。通常它返回的類都有一個(gè)公共的父類和公共的方法。清華大學(xué)出版社11簡單工廠模式提供一個(gè)類,由它負(fù)責(zé)根據(jù)一定的條件創(chuàng)建某一具體類的實(shí)例。清華大學(xué)出版社122. 工廠方法(FactoryMethod)模式工廠方法模式,是對簡單工廠模式進(jìn)行了抽象和推廣。由于使用了多態(tài)性,工廠方法模式保持了簡單工廠模式的優(yōu)點(diǎn),而且克服了它的缺點(diǎn)。清華大學(xué)出版社133. 抽象工廠模式抽象工廠模式指一個(gè)工廠等級(jí)結(jié)構(gòu)可以創(chuàng)建出分屬于不同產(chǎn)品等級(jí)結(jié)構(gòu)的一個(gè)產(chǎn)品族中的所有對象。如果用圖來描述的話,提供創(chuàng)建對象的接口,與工廠方法類似,但此處返回的一系列相關(guān)產(chǎn)品。清華大學(xué)出版社144. 單例(Singleton)模式單例模式屬于對象創(chuàng)建型模式,其意圖,單件模式保證應(yīng)用只有一個(gè)全局惟一的實(shí)例,并且提供一個(gè)訪問它的全局訪問點(diǎn)。單例模式,保證某個(gè)類有且僅有一個(gè)實(shí)例。清華大學(xué)出版社159.4.2結(jié)構(gòu)型設(shè)計(jì)模式1. 適配器(Adapter)模式適配器模式將一個(gè)類的程序設(shè)計(jì)接口轉(zhuǎn)換成另一個(gè)接口。這很像變壓器(Adapter),變壓器把一種電壓變換成另一種電壓。美國的生活用電電壓是110V,而中國的電壓是220V。如果要在中國使用美國電器,就必須有一個(gè)能把220V電壓轉(zhuǎn)換成110V電壓的變壓器。這個(gè)變壓器就是一個(gè)Adapter。清華大學(xué)出版社16類的Adapter模式的結(jié)構(gòu)復(fù)用已存在的接口與所需接口不一致的類。類適配器:從一個(gè)不一致的類派生出一個(gè)類,然后自愛派生類里面增加所需要的方法,使得派生類能夠匹配所需要的接口。對象適配器:將原始類包含在新類里,然后在新類里創(chuàng)建方法去轉(zhuǎn)換調(diào)用。清華大學(xué)出版社17
對象的Adapter模式的結(jié)構(gòu)客戶端需要調(diào)用Request方法,而Adaptee沒有該方法,為了使客戶端能夠使用Adaptee類,需要提供一個(gè)包裝的類Adapter。這個(gè)包裝類包裝了一個(gè)Adaptee的實(shí)例,從而將客戶端與Adaptee銜接起來。由于Adapter與Adaptee是委派關(guān)系,這決定了這個(gè)適配器模式是對象的。清華大學(xué)出版社182. 橋接(Bridge)模式橋梁模式是一個(gè)非常有用的模式,也是比較復(fù)雜的一個(gè)模式。熟悉這個(gè)模式對于理解面向?qū)ο蟮脑O(shè)計(jì)原則,包括“開-閉”原則(OCP)以及組合/聚合復(fù)用原則(CARP)都很有幫助。理解好這兩個(gè)原則,有助于形成正確的設(shè)計(jì)思想和培養(yǎng)良好的設(shè)計(jì)風(fēng)格。清華大學(xué)出版社193. 組合(Composite)模式組合模式有時(shí)候又叫做部分-整體模式,是將對象組合成樹形結(jié)構(gòu)以表示部分-整體的層次結(jié)構(gòu),Composite模式使得用戶對單個(gè)對象和組合對象的使用具有一致性。Composite模式的一個(gè)重要思想,是遞歸組合,一個(gè)抽象類,既可以代表組合對象,又可以代表一個(gè)被組合的對象。清華大學(xué)出版社20透明式的合成模式結(jié)構(gòu)與安全式的合成模式不同的是,透明式的合成模式要求所有的具體構(gòu)件類,不論樹枝構(gòu)件還是樹葉構(gòu)件,均符合一個(gè)固定的接口。清華大學(xué)出版社214. 裝飾(Decorator)模式裝飾(Decorator)模式又名包裝(Wrapper)模式,以對客戶端透明的方式擴(kuò)展對象的功能,是繼承關(guān)系的一個(gè)替代方案。動(dòng)態(tài)地給對象添加一些額外的職責(zé),就增加功能來說,裝飾模式比生成子類更靈活。清華大學(xué)出版社225. 外觀(Facade)模式:外觀模式外部與一個(gè)子系統(tǒng)的通信必須通過一個(gè)統(tǒng)一的門面(Fa?ade)對象進(jìn)行。清華大學(xué)出版社236. 享元(Flyweight)模式用一個(gè)共享來避免大量擁有相同內(nèi)容對象的開銷。這種開銷中最常見、直觀的就是內(nèi)存的損耗,享元模式以共享的方式高效的支持大量的細(xì)粒度對象。清華大學(xué)出版社247. 代理(Proxy)模式:代理,就是一個(gè)人或者一個(gè)機(jī)構(gòu)代表另一個(gè)人或者另一個(gè)機(jī)構(gòu)采取行動(dòng)。在一些情況下,一個(gè)客戶不想或者不能夠直接引用一個(gè)對象,而代理對象可以在客戶端和目標(biāo)對象之間起到中介的作用。清華大學(xué)出版社259.4.3 行為型設(shè)計(jì)模式行為型模式(BehavioralPattern)描述算法以及對象之間的任務(wù)職責(zé)分配,它所描述的不僅僅是類或?qū)ο蟮脑O(shè)計(jì)模式,還有它們之間的通信模式。行為模式是對在不同的對象之間劃分責(zé)任和算法的抽象化。這些模式描述了在運(yùn)行時(shí)刻難以跟蹤的復(fù)雜的控制流。行為型的模式有職責(zé)鏈(ChainofResponsibility)模式、命令(Command)模式、迭代器(Iterator)模式、中介者(Mediator)備忘錄(Memento)模式、觀察者(Observer)模式、策略(Strategy)模式、訪問者(Visitor)模式等。行為模式,分為類的行為模式和對象的行為模式兩種。類的行為模式:類的行為模式使用繼承關(guān)系在幾個(gè)類之問分配行為。對象的行為模式:對象的行為模式則使用對象的聚合來分配行為。清華大學(xué)出版社261. 職責(zé)鏈(ChainofResponsibility)模式使多個(gè)對象都有機(jī)會(huì)處理請求,從而避免請求的發(fā)送者和接收者之間的耦合關(guān)系。將這些對象連成一條鏈,并沿著這條鏈傳遞請求,直到有一個(gè)對象處理它為止。清華大學(xué)出版社272. 命令(Command)模式命令模式把申請?zhí)囟ú僮鞯恼埱蠓庋b到一個(gè)對象中,并給對象一個(gè)眾所周知的接口。命令模式允許系統(tǒng)使用不同的請求把客戶端參數(shù)化,對請求排隊(duì)或者記錄請求日志,可以提供命令的撤銷和恢復(fù)功能。清華大學(xué)出版社283. 中介者(Mediator)模式中介者模式,又稱為調(diào)停者模式,用一個(gè)中介對象來封裝一系列的對象交互。簡單點(diǎn)來說,將原來兩個(gè)直接引用或者依賴的對象拆開,在中間加入一個(gè)“中介”對象,使得兩頭的對象分別和“中介”對象引用或者依賴。清華大學(xué)出版社294. 觀察者(Observer)模式觀察者模式又叫做發(fā)布-訂閱(Publish/Subscribe)模式、模型-視圖(Model/View)模式、源-監(jiān)聽器(Source/Listener)模式或從屬者(Dependents)模式。清華大學(xué)出版社305. 訪問者(Visitor)模式訪問者模式表示一個(gè)作用于某個(gè)對象結(jié)構(gòu)中的各元素的操作,使得可以再不改變各元素的類前提下定義作用于這些元素的心操作。清華大學(xué)出版社319.5 深入認(rèn)識(shí)設(shè)計(jì)模式設(shè)計(jì)模式能較好的實(shí)現(xiàn)代碼復(fù)用,增加可維護(hù)性。設(shè)計(jì)模式的實(shí)現(xiàn)遵循了一下原則,從而達(dá)到了代碼復(fù)用及增加可維護(hù)性的目的。下面是設(shè)計(jì)模式應(yīng)當(dāng)遵循的幾個(gè)常用原則:(1)單一職責(zé)原則(SimpleResponsibilityPrinciple,SRP)(2)開閉原則(Open-ClosedPrinciple,OCP)(3)里氏替換原則(LiskovSubstitutionPrinciple,LSP)(4)依賴倒置原則(DependenceInversionPrinciple,DIP)五、接口隔離原則(InterfaceSegregationPrinciple,ISP)六、迪米特原則(LawofDemeter,LoD)清華大學(xué)出版社329.6 小結(jié)介紹了設(shè)計(jì)模式的發(fā)展歷程,分析了設(shè)計(jì)模式在實(shí)際軟件開發(fā)中的作用。設(shè)計(jì)模式能較好的實(shí)現(xiàn)代碼復(fù)用,增加可維護(hù)性。設(shè)計(jì)模式通常分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式,這三大類,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科學(xué)用棱鏡市場發(fā)展前景分析及供需格局研究預(yù)測報(bào)告
- 螺旋扳手市場發(fā)展前景分析及供需格局研究預(yù)測報(bào)告
- 云電子商務(wù)服務(wù)行業(yè)市場調(diào)研分析報(bào)告
- 書簽產(chǎn)業(yè)鏈招商引資的調(diào)研報(bào)告
- 建筑的施工和維修行業(yè)市場調(diào)研分析報(bào)告
- 纜車細(xì)分市場深度研究報(bào)告
- 太陽鏡出租行業(yè)經(jīng)營分析報(bào)告
- 花園水管用噴霧器項(xiàng)目營銷計(jì)劃書
- 紙板棺材市場發(fā)展前景分析及供需格局研究預(yù)測報(bào)告
- 裝有集成臺(tái)面的廚房水槽項(xiàng)目運(yùn)營指導(dǎo)方案
- 建立高效護(hù)理團(tuán)隊(duì)課件
- 東北抗聯(lián)精神很實(shí)用-學(xué)習(xí)東北抗聯(lián)精神共24張課件
- 老舊小區(qū)改造施工組織詳細(xì)
- 生產(chǎn)現(xiàn)場8S檢查表
- DBJ51 014-2021 四川省建筑地基基礎(chǔ)檢測技術(shù)規(guī)程
- 健康社會(huì)決定因素2015.8課件
- 飼料粉塵防爆安全檢查表
- 二手車拍賣成交確認(rèn)書范本簡約版
- 幼兒園大班語言《有趣的漢字》課件
- 婦科常用藥物課件
- 教師資格的定期注冊申請表
評(píng)論
0/150
提交評(píng)論