版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
設(shè)計模式復(fù)習(xí)提綱設(shè)計模式復(fù)習(xí)提綱設(shè)計模式復(fù)習(xí)提綱設(shè)計模式復(fù)習(xí)提綱編制僅供參考審核批準(zhǔn)生效日期地址:電話:傳真:郵編:設(shè)計模式復(fù)習(xí)提綱第一章狀態(tài)圖的定義狀態(tài)圖用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。第二章軟件的可維護性和可復(fù)用性()軟件可維護性,即維護人員對該軟件進行維護的難易程度,具體包括理解、改正、改動和改進該軟件的難易程度。可復(fù)用性:復(fù)用又叫重用,是重復(fù)使用的意思。面向?qū)ο笤O(shè)計原則單一職責(zé)原則開閉原則里氏代換原則依賴倒轉(zhuǎn)原則接口隔離原則合成復(fù)用原則迪米特法則3.單一職責(zé)原則定義單一職責(zé)原則定義:一個對象應(yīng)該只包含單一的職責(zé),并且該職責(zé)被完整地封裝在一個類中。另一種定義:就一個類而言,應(yīng)該僅有一個引起它變化的原因。4.開閉原則定義開閉原則定義:一個軟件實體應(yīng)當(dāng)對擴展開放,對修改關(guān)閉。5.里氏代換原則定義里氏代換原則有兩種定義方式。第一種定義方式相對嚴(yán)格,其定義如下:如果對每一個類型為S的對象o1,都有類型為T的對象o2,使得以T定義的所有程序P在所有的對象o1都代換成o2時,程序P的行為沒有變化,那么類型S是類型T的子類型。第二種更容易理解的定義方式如下:所有引用基類(父類)的地方必須能透明地使用其子類的對象。6.依賴倒轉(zhuǎn)原則定義依賴倒轉(zhuǎn)原則定義:高層模塊不應(yīng)該依賴低層模塊,它們都應(yīng)該依賴抽象。抽象不應(yīng)該依賴于細節(jié),細節(jié)應(yīng)該依賴于抽象。另一種表述為:要針對接口編程,不要針對實現(xiàn)編程。7.接口隔離原則定義接口隔離原則定義:客戶端不應(yīng)該依賴那些它不需要的接口。注意:在該定義中的接口指的是所定義的方法。另一種定義方法:一旦一個接口太大,則需要將它分割成一些更細小的接口,使用該接口的客戶端僅需知道與之相關(guān)的方法即可。8.合成復(fù)用原則定義合成復(fù)用原則,又稱為組合/聚合復(fù)用原則,其定義如下:盡量使用對象組合,而不是繼承來達到復(fù)用的目的。9.迪米特法則定義迪米特法則,又稱為最少知識原則,它有多種定義方法,其中幾種典型定義如下:不要和“陌生人”說話。只與你的直接朋友通信。每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關(guān)的軟件單位。第三章模式的定義每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心,通過這種方式,我們可以無數(shù)次地重用那些已有的解決方案,無需再重復(fù)相同的工作??梢杂靡痪湓捄唵伪硎緸椋耗J绞窃谔囟ōh(huán)境中解決問題的一種方案。設(shè)計模式的定義設(shè)計模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié),使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。設(shè)計模式的基本要素設(shè)計模式一般有如下幾個基本要素:模式名稱、問題、目的、解決方案、效果、實例代碼和相關(guān)設(shè)計模式,其中的關(guān)鍵元素包括以下四個方面:模式名稱、問題、解決方案、效果。設(shè)計模式的分類(1)根據(jù)其目的(模式是用來做什么的)可分為創(chuàng)建型、結(jié)構(gòu)型和行為型三種:①創(chuàng)建型模式主要用于創(chuàng)建對象。②結(jié)構(gòu)型模式主要用于處理類或?qū)ο蟮慕M合。③行為型模式主要用于描述對類或?qū)ο笤鯓咏换ズ驮鯓臃峙渎氊?zé)。(2)根據(jù)范圍,即模式主要是用于處理類之間關(guān)系還是處理對象之間的關(guān)系,可分為類模式和對象模式兩種:①類模式處理類和子類之間的關(guān)系,這些關(guān)系通過繼承建立,在編譯時刻就被確定下來,是屬于靜態(tài)的。②對象模式處理對象間的關(guān)系,這些關(guān)系在運行時刻變化,更具動態(tài)性。GoF設(shè)計模式簡介GoF最先將模式的概念引入軟件工程領(lǐng)域,他們歸納發(fā)表了23種在軟件開發(fā)中使用頻率較高的設(shè)計模式,旨在用模式來統(tǒng)一溝通面向?qū)ο蠓椒ㄔ诜治?、設(shè)計和實現(xiàn)間的鴻溝。設(shè)計模式的優(yōu)點設(shè)計模式是從許多優(yōu)秀的軟件系統(tǒng)中總結(jié)出的成功的、能夠?qū)崿F(xiàn)可維護性復(fù)用的設(shè)計方案,使用這些方案將避免我們做一些重復(fù)性的工作,而且可以設(shè)計出高質(zhì)量的軟件系統(tǒng)。設(shè)計模式的主要優(yōu)點如下:(1)設(shè)計模式融合了眾多專家的經(jīng)驗,并以一種標(biāo)準(zhǔn)的形式供廣大開發(fā)人員所用,它提供了一套通用的設(shè)計詞匯和一種通用的語言以方便開發(fā)人員之間溝通和交流,使得設(shè)計方案更加通俗易懂。對于使用不同編程語言的開發(fā)和設(shè)計人員可以通過設(shè)計模式來交流系統(tǒng)設(shè)計方案,每一個模式都對應(yīng)一個標(biāo)準(zhǔn)的解決方案,設(shè)計模式可以降低開發(fā)人員理解系統(tǒng)的復(fù)雜度。(2)設(shè)計模式使人們可以更加簡單方便地復(fù)用成功的設(shè)計和體系結(jié)構(gòu),將已證實的技術(shù)表述成設(shè)計模式也會使新系統(tǒng)開發(fā)者更加容易理解其設(shè)計思路。設(shè)計模式使得重用成功的設(shè)計更加容易,并避免那些導(dǎo)致不可重用的設(shè)計方案。(3)設(shè)計模式使得設(shè)計方案更加靈活,且易于修改。(4)設(shè)計模式的使用將提高軟件系統(tǒng)的開發(fā)效率和軟件質(zhì)量,且在一定程度上節(jié)約設(shè)計成本。(5)設(shè)計模式有助于初學(xué)者更深入地理解面向?qū)ο笏枷?,一方面可以幫助初學(xué)者更加方便地閱讀和學(xué)習(xí)現(xiàn)有類庫與其他系統(tǒng)中的源代碼,另一方面還可以提高軟件的設(shè)計水平和代碼質(zhì)量。補充:7.設(shè)計模式主題:復(fù)用與擴展。8.設(shè)計模式基本原則()同面向?qū)ο笤O(shè)計原則。廣義工廠模式包括:簡單工廠模式、工廠方法模式、抽象工廠模式。簡單工廠模式——不是GoF23種模式中的一員補充:創(chuàng)建型模式概述:創(chuàng)建型模式對類的實例化過程進行了抽象,能夠?qū)④浖K中對象的創(chuàng)建和對象的使用分離。創(chuàng)建型模式在創(chuàng)建什么(What),由誰創(chuàng)建(Who),何時創(chuàng)建(When)等方面都為軟件設(shè)計者提供了盡可能大的靈活性。創(chuàng)建型模式隱藏了類的實例的創(chuàng)建細節(jié),通過隱藏對象如何被創(chuàng)建和組合在一起達到使整個系統(tǒng)獨立的目的。定義:簡單工廠模式:又稱為靜態(tài)工廠方法模式,它屬于類創(chuàng)建型模式。在簡單工廠模式中,可以根據(jù)參數(shù)的不同返回不同類的實例。簡單工廠模式專門定義一個類來負責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。結(jié)構(gòu)圖:主要優(yōu)缺點:簡單工廠模式最大的優(yōu)點在于實現(xiàn)對象的創(chuàng)建和對象的使用分離,將對象的創(chuàng)建交給專門的工廠類負責(zé);但是其最大的缺點在于工廠類不夠靈活,增加新的具體產(chǎn)品需要修改工廠類的判斷邏輯代碼,而且產(chǎn)品較多時,工廠方法代碼將會非常復(fù)雜。工廠方法模式定義:工廠方法模式又稱為工廠模式,也叫虛擬構(gòu)造器模式或者多態(tài)工廠模式,它屬于類創(chuàng)建型模式。在工廠方法模式中,工廠父類負責(zé)定義創(chuàng)建產(chǎn)品對象的公共接口,而工廠子類則負責(zé)生成具體的產(chǎn)品對象,這樣做的目的是將產(chǎn)品類的實例化操作延遲到工廠子類中完成,即通過工廠子類來確定究竟應(yīng)該實例化哪一個具體產(chǎn)品類。結(jié)構(gòu)圖:主要優(yōu)缺點:工廠方法模式的主要優(yōu)點是增加新的產(chǎn)品類時無須修改現(xiàn)有系統(tǒng),并封裝了產(chǎn)品對象的創(chuàng)建細節(jié),系統(tǒng)具有良好的靈活性和可擴展性;其缺點在于增加新產(chǎn)品的同時需要增加新的工廠,導(dǎo)致系統(tǒng)類的個數(shù)成對增加,在一定程度上增加了系統(tǒng)的復(fù)雜性。抽象工廠模式定義:抽象工廠模式:提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無須指定它們具體的類。抽象工廠模式又稱為Kit模式,屬于對象創(chuàng)建型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:抽象工廠模式的主要優(yōu)點是隔離了具體類的生成,使得客戶并不需要知道什么被創(chuàng)建,而且每次可以通過具體工廠類創(chuàng)建一個產(chǎn)品族中的多個對象,增加或者替換產(chǎn)品族比較方便,增加新的具體工廠和產(chǎn)品族很方便;主要缺點在于增加新的產(chǎn)品等級結(jié)構(gòu)很復(fù)雜,需要修改抽象工廠和所有的具體工廠類,對“開閉原則”的支持呈現(xiàn)傾斜性。建造者模式定義:建造者模式:將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。建造者模式是一步一步創(chuàng)建一個復(fù)雜的對象,它允許用戶只通過指定復(fù)雜對象的類型和內(nèi)容就可以構(gòu)建它們,用戶不需要知道內(nèi)部的具體構(gòu)建細節(jié)。建造者模式屬于對象創(chuàng)建型模式。根據(jù)中文翻譯的不同,建造者模式又可以稱為生成器模式。結(jié)構(gòu)圖:主要優(yōu)缺點:建造者模式的主要優(yōu)點在于客戶端不必知道產(chǎn)品內(nèi)部組成的細節(jié),將產(chǎn)品本身與產(chǎn)品的創(chuàng)建過程解耦,使得相同的創(chuàng)建過程可以創(chuàng)建不同的產(chǎn)品對象,每一個具體建造者都相對獨立,而與其他的具體建造者無關(guān),因此可以很方便地替換具體建造者或增加新的具體建造者,符合“開閉原則”,還可以更加精細地控制產(chǎn)品的創(chuàng)建過程;其主要缺點在于由于建造者模式所創(chuàng)建的產(chǎn)品一般具有較多的共同點,其組成部分相似,因此其使用范圍受到一定的限制,如果產(chǎn)品的內(nèi)部變化復(fù)雜,可能會導(dǎo)致需要定義很多具體建造者類來實現(xiàn)這種變化,導(dǎo)致系統(tǒng)變得很龐大。原型模式定義:原型模式:原型模式是一種對象創(chuàng)建型模式,用原型實例指定創(chuàng)建對象的種類,并且通過復(fù)制這些原型創(chuàng)建新的對象。原型模式允許一個對象再創(chuàng)建另外一個可定制的對象,無須知道任何創(chuàng)建的細節(jié)。原型模式的基本工作原理是通過將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝原型自己來實現(xiàn)創(chuàng)建過程。結(jié)構(gòu)圖:主要優(yōu)缺點:原型模式最大的優(yōu)點在于可以快速創(chuàng)建很多相同或相似的對象,簡化對象的創(chuàng)建過程,還可以保存對象的一些中間狀態(tài);其缺點在于需要為每一個類配備一個克隆方法,因此對已有類進行改造比較麻煩,需要修改其源代碼,并且在實現(xiàn)深克隆時需要編寫較為復(fù)雜的代碼。單例模式定義:單例模式:單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類,它提供全局訪問的方法。單例模式的要點有三個:一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三是它必須自行向整個系統(tǒng)提供這個實例。單例模式是一種對象創(chuàng)建型模式。單例模式又名單件模式或單態(tài)模式。結(jié)構(gòu)圖:主要優(yōu)缺點:單例模式的主要優(yōu)點在于提供了對唯一實例的受控訪問并可以節(jié)約系統(tǒng)資源;其主要缺點在于因為缺少抽象層而難以擴展,且單例類職責(zé)過重。適配器模式補充:結(jié)構(gòu)型模式概述:結(jié)構(gòu)型模式(StructuralPattern)描述如何將類或者對象結(jié)合在一起形成更大的結(jié)構(gòu),就像搭積木,可以通過簡單積木的組合形成復(fù)雜的、功能更為強大的結(jié)構(gòu)。結(jié)構(gòu)型模式可以分為類結(jié)構(gòu)型模式和對象結(jié)構(gòu)型模式:類結(jié)構(gòu)型模式關(guān)心類的組合,由多個類可以組合成一個更大的系統(tǒng),在類結(jié)構(gòu)型模式中一般只存在繼承關(guān)系和實現(xiàn)關(guān)系。對象結(jié)構(gòu)型模式關(guān)心類與對象的組合,通過關(guān)聯(lián)關(guān)系使得在一個類中定義另一個類的實例對象,然后通過該對象調(diào)用其方法。根據(jù)“合成復(fù)用原則”,在系統(tǒng)中盡量使用關(guān)聯(lián)關(guān)系來替代繼承關(guān)系,因此大部分結(jié)構(gòu)型模式都是對象結(jié)構(gòu)型模式。定義:適配器模式:將一個接口轉(zhuǎn)換成客戶希望的另一個接口,適配器模式使接口不兼容的那些類可以一起工作,其別名為包裝器。適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對象結(jié)構(gòu)型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:適配器模式的主要優(yōu)點是將目標(biāo)類和適配者類解耦,增加了類的透明性和復(fù)用性,同時系統(tǒng)的靈活性和擴展性都非常好,更換適配器或者增加新的適配器都非常方便,符合“開閉原則”;類適配器模式的缺點是適配器類在很多編程語言中不能同時適配多個適配者類,對象適配器模式的缺點是很難置換適配者類的方法。橋接模式定義:橋接模式:將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為柄體模式或接口模式。結(jié)構(gòu)圖:主要優(yōu)缺點:橋接模式的主要優(yōu)點是分離抽象接口及其實現(xiàn)部分,是比多繼承方案更好的解決方法,橋接模式還提高了系統(tǒng)的可擴充性,在兩個變化維度中任意擴展一個維度,都不需要修改原有系統(tǒng),實現(xiàn)細節(jié)對客戶透明,可以對用戶隱藏實現(xiàn)細節(jié);其主要缺點是增加系統(tǒng)的理解與設(shè)計難度,且識別出系統(tǒng)中兩個獨立變化的維度并不是一件容易的事情。組合模式定義:組合模式:組合多個對象形成樹形結(jié)構(gòu)以表示“整體-部分”的結(jié)構(gòu)層次。組合模式對單個對象(即葉子對象)和組合對象(即容器對象)的使用具有一致性。組合模式又可以稱為“整體-部分”模式,屬于對象的結(jié)構(gòu)模式,它將對象組織到樹結(jié)構(gòu)中,可以用來描述整體與部分的關(guān)系。結(jié)構(gòu)圖:主要優(yōu)缺點:組合模式的主要優(yōu)點在于可以方便地對層次結(jié)構(gòu)進行控制,客戶端調(diào)用簡單,客戶端可以一致的使用組合結(jié)構(gòu)或其中單個對象,用戶就不必關(guān)心自己處理的是單個對象還是整個組合結(jié)構(gòu),簡化了客戶端代碼;其缺點在于使設(shè)計變得更加抽象,且增加新構(gòu)件時可能會產(chǎn)生一些問題,而且很難對容器中的構(gòu)件類型進行限制。裝飾模式定義:裝飾模式:動態(tài)地給一個對象增加一些額外的職責(zé),就增加對象功能來說,裝飾模式比生成子類實現(xiàn)更為靈活。其別名也可以稱為包裝器,與適配器模式的別名相同,但它們適用于不同的場合。根據(jù)翻譯的不同,裝飾模式也有人稱之為“油漆工模式”,它是一種對象結(jié)構(gòu)型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:裝飾模式的主要優(yōu)點在于可以提供比繼承更多的靈活性,可以通過一種動態(tài)的方式來擴展一個對象的功能,并通過使用不同的具體裝飾類以及這些裝飾類的排列組合,可以創(chuàng)造出很多不同行為的組合,而且具體構(gòu)件類與具體裝飾類可以獨立變化,用戶可以根據(jù)需要增加新的具體構(gòu)件類和具體裝飾類;其主要缺點在于使用裝飾模式進行系統(tǒng)設(shè)計時將產(chǎn)生很多小對象,而且裝飾模式比繼承更加易于出錯,排錯也很困難,對于多次裝飾的對象,調(diào)試時尋找錯誤可能需要逐級排查,較為煩瑣。外觀模式定義:外觀模式:外部與一個子系統(tǒng)的通信必須通過一個統(tǒng)一的外觀對象進行,為子系統(tǒng)中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。外觀模式又稱為門面模式,它是一種對象結(jié)構(gòu)型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:外觀模式主要優(yōu)點在于對客戶屏蔽子系統(tǒng)組件,減少了客戶處理的對象數(shù)目并使得子系統(tǒng)使用起來更加容易,它實現(xiàn)了子系統(tǒng)與客戶之間的松耦合關(guān)系,并降低了大型軟件系統(tǒng)中的編譯依賴性,簡化了系統(tǒng)在不同平臺之間的移植過程;其缺點在于不能很好地限制客戶使用子系統(tǒng)類,而且在不引入抽象外觀類的情況下,增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼,違背了“開閉原則”。享元模式定義:享元模式:運用共享技術(shù)有效地支持大量細粒度對象的復(fù)用。系統(tǒng)只使用少量的對象,而這些對象都很相似,狀態(tài)變化很小,可以實現(xiàn)對象的多次復(fù)用。由于享元模式要求能夠共享的對象必須是細粒度對象,因此它又稱為輕量級模式,它是一種對象結(jié)構(gòu)型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:享元模式主要優(yōu)點在于它可以極大減少內(nèi)存中對象的數(shù)量,使得相同對象或相似對象在內(nèi)存中只保存一份;其缺點是使得系統(tǒng)更加復(fù)雜,并且需要將享元對象的狀態(tài)外部化,而讀取外部狀態(tài)使得運行時間變長。代理模式定義:代理模式:給某一個對象提供一個代理,并由代理對象控制對原對象的引用。代理模式的英文叫做Proxy或Surrogate,它是一種對象結(jié)構(gòu)型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:代理模式的優(yōu)點在于能夠協(xié)調(diào)調(diào)用者和被調(diào)用者,在一定程度上降低了系統(tǒng)的耦合度;其缺點在于由于在客戶端和真實主題之間增加了代理對象,因此有些類型的代理模式可能會造成請求的處理速度變慢,并且實現(xiàn)代理模式需要額外的工作,有些代理模式的實現(xiàn)非常復(fù)雜。職責(zé)鏈模式補充:行為型模式概述:行為型模式是對在不同的對象之間劃分責(zé)任和算法的抽象化。行為型模式不僅僅關(guān)注類和對象的結(jié)構(gòu),而且重點關(guān)注它們之間的相互作用。通過行為型模式,可以更加清晰地劃分類與對象的職責(zé),并研究系統(tǒng)在運行時實例對象之間的交互。在系統(tǒng)運行時,對象并不是孤立的,它們可以通過相互通信與協(xié)作完成某些復(fù)雜功能,一個對象在運行時也將影響到其他對象的運行。行為型模式分為類行為型模式和對象行為型模式兩種:(1)類行為型模式:類的行為型模式使用繼承關(guān)系在幾個類之間分配行為,類行為型模式主要通過多態(tài)等方式來分配父類與子類的職責(zé)。(2)對象行為型模式:對象的行為型模式則使用對象的聚合關(guān)聯(lián)關(guān)系來分配行為,對象行為型模式主要是通過對象關(guān)聯(lián)等方式來分配兩個或多個類的職責(zé)。根據(jù)“合成復(fù)用原則”,系統(tǒng)中要盡量使用關(guān)聯(lián)關(guān)系來取代繼承關(guān)系,因此大部分行為型設(shè)計模式都屬于對象行為型設(shè)計模式。1.定義:職責(zé)鏈模式:避免請求發(fā)送者與接收者耦合在一起,讓多個對象都有可能接收請求,將這些對象連接成一條鏈,并且沿著這條鏈傳遞請求,直到有對象處理它為止。由于英文翻譯的不同,職責(zé)鏈模式又稱為責(zé)任鏈模式,它是一種對象行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:職責(zé)鏈模式的主要優(yōu)點在于可以降低系統(tǒng)的耦合度,簡化對象的相互連接,同時增強給對象指派職責(zé)的靈活性,增加新的請求處理類也很方便;其主要缺點在于不能保證請求一定被接收,且對于比較長的職責(zé)鏈,請求的處理可能涉及到多個處理對象,系統(tǒng)性能將受到一定影響,而且在進行代碼調(diào)試時不太方便。命令模式定義:命令模式:將一個請求封裝為一個對象,從而使我們可用不同的請求對客戶進行參數(shù)化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作。命令模式是一種對象行為型模式,其別名為動作模式或事務(wù)模式。結(jié)構(gòu)圖:主要優(yōu)缺點:命令模式的主要優(yōu)點在于降低系統(tǒng)的耦合度,增加新的命令很方便,而且可以比較容易地設(shè)計一個命令隊列和宏命令,并方便地實現(xiàn)對請求的撤銷和恢復(fù);其主要缺點在于可能會導(dǎo)致某些系統(tǒng)有過多的具體命令類。解釋器模式定義:解釋器模式:定義語言的文法,并且建立一個解釋器來解釋該語言中的句子,這里的“語言”意思是使用規(guī)定格式和語法的代碼,它是一種類行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:解釋器模式的主要優(yōu)點包括易于改變和擴展文法,易于實現(xiàn)文法并增加了新的解釋表達式的方式;其主要缺點是對于復(fù)雜文法難以維護,執(zhí)行效率較低且應(yīng)用場景很有限。第二十章迭代器模式定義:迭代器模式:提供一種方法來訪問聚合對象,而不用暴露這個對象的內(nèi)部表示,其別名為游標(biāo)。迭代器模式是一種對象行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:迭代器模式的主要優(yōu)點在于它支持以不同的方式遍歷一個聚合對象,還簡化了聚合類,而且在同一個聚合上可以有多個遍歷;其缺點在于增加新的聚合類需要對應(yīng)增加新的迭代器類,類的個數(shù)成對增加,這在一定程度上增加了系統(tǒng)的復(fù)雜性。第二十一章中介者模式定義:中介者模式定義:用一個中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。中介者模式又稱為調(diào)停者模式,它是一種對象行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:中介者模式的主要優(yōu)點在于簡化了對象之間的交互,將各同事解耦,還可以減少子類生成,對于復(fù)雜的對象之間的交互,通過引入中介者,可以簡化各同事類的設(shè)計和實現(xiàn);中介者模式主要缺點在于具體中介者類中包含了同事之間的交互細節(jié),可能會導(dǎo)致具體中介者類非常復(fù)雜,使得系統(tǒng)難以維護。第二十二章備忘錄模式定義:備忘錄模式:在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài),這樣可以在以后將對象恢復(fù)到原先保存的狀態(tài)。它是一種對象行為型模式,其別名為Token。結(jié)構(gòu)圖:主要優(yōu)缺點:備忘錄模式的主要優(yōu)點在于它提供了一種狀態(tài)恢復(fù)的實現(xiàn)機制,使得用戶可以方便地回到一個特定的歷史步驟,還簡化了原發(fā)器對象,備忘錄只保存原發(fā)器的狀態(tài),采用堆棧來存儲備忘錄對象可以實現(xiàn)多次撤消操作,可以通過在負責(zé)人中定義集合對象來存儲多個備忘錄;備忘錄模式的主要缺點在于資源消耗過大,因為每一個歷史狀態(tài)的保存都需要一個備忘錄對象。第二十三章觀察者模式定義:觀察者模式:定義對象間的一種一對多依賴關(guān)系,使得每當(dāng)一個對象狀態(tài)發(fā)生改變時,其相關(guān)依賴對象皆得到通知并被自動更新。觀察者模式又叫做發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽器模式或從屬者模式。觀察者模式是一種對象行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:觀察者模式的主要優(yōu)點在于可以實現(xiàn)表示層和數(shù)據(jù)邏輯層的分離,并在觀察目標(biāo)和觀察者之間建立一個抽象的耦合,支持廣播通信;其主要缺點在于如果一個觀察目標(biāo)對象有很多直接和間接的觀察者的話,將所有的觀察者都通知到會花費很多時間,而且如果在觀察者和觀察目標(biāo)之間有循環(huán)依賴的話,觀察目標(biāo)會觸發(fā)它們之間進行循環(huán)調(diào)用,可能導(dǎo)致系統(tǒng)崩潰。第二十四章狀態(tài)模式定義:狀態(tài)模式:允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它的類。其別名為狀態(tài)對象,狀態(tài)模式是一種對象行為型模式。結(jié)構(gòu)圖:主要優(yōu)缺點:狀態(tài)模式的主要優(yōu)點在于封裝了轉(zhuǎn)換規(guī)則
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度一級建造師工程項目管理咨詢合同3篇
- 2025版木雕工藝品知識產(chǎn)權(quán)保護與維權(quán)合同4篇
- 2025年度智能家居系統(tǒng)安裝與購房貸款合同4篇
- 2025版學(xué)校食堂標(biāo)準(zhǔn)化蔬菜配送服務(wù)合同3篇
- 二零二五年度高檔石材雕刻打磨施工合同2篇
- 2025年度酒店廚師臨時用工合同模板更新版3篇
- 二零二五年度門窗玻璃深加工合同范本4篇
- 2025版智能家居一體化大平方樓房買賣合同3篇
- 二零二五版建筑工地鋼筋采購環(huán)保認證合同3篇
- 二零二五年度房產(chǎn)繼承過戶全程輔導(dǎo)服務(wù)合同4篇
- 銷售與銷售目標(biāo)管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預(yù)習(xí)重點知識默寫練習(xí)
- 2024年食品行業(yè)員工勞動合同標(biāo)準(zhǔn)文本
- 2024-2030年中國減肥行業(yè)市場發(fā)展分析及發(fā)展趨勢與投資研究報告
- 運動技能學(xué)習(xí)
- 2024年中考英語專項復(fù)習(xí):傳統(tǒng)文化的魅力(閱讀理解+完型填空+書面表達)(含答案)
- (正式版)HGT 22820-2024 化工安全儀表系統(tǒng)工程設(shè)計規(guī)范
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 臨沂正祥建材有限公司牛心官莊鐵礦礦山地質(zhì)環(huán)境保護與土地復(fù)墾方案
- 六年級上冊數(shù)學(xué)應(yīng)用題練習(xí)100題及答案
- 死亡報告年終分析報告
評論
0/150
提交評論