欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      設(shè)計模式復(fù)習(xí)提綱

      2020-06-29 08:20:02下載本文作者:會員上傳
      簡介:寫寫幫文庫小編為你整理了這篇《設(shè)計模式復(fù)習(xí)提綱》,但愿對你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《設(shè)計模式復(fù)習(xí)提綱》。

      設(shè)計模式復(fù)習(xí)提綱

      第一章

      1.狀態(tài)圖的定義

      狀態(tài)圖用來描述一個特定對象的所有可能狀態(tài)及其引起狀態(tài)轉(zhuǎn)移的事件。

      第二章

      1.軟件的可維護(hù)性和可復(fù)用性(?)

      軟件可維護(hù)性,即維護(hù)人員對該軟件進(jìn)行維護(hù)的難易程度,具體包括理解、改正、改動和改進(jìn)該軟件的難易程度。

      可復(fù)用性:復(fù)用又叫重用,是重復(fù)使用的意思。

      2.面向?qū)ο笤O(shè)計原則

      (1)

      單一職責(zé)原則

      (2)

      開閉原則

      (3)

      里氏代換原則

      (4)

      依賴倒轉(zhuǎn)原則

      (5)

      接口隔離原則

      (6)

      合成復(fù)用原則

      (7)

      迪米特法則

      3.單一職責(zé)原則定義

      單一職責(zé)原則定義:一個對象應(yīng)該只包含單一的職責(zé),并且該職責(zé)被完整地封裝在一個類中。

      另一種定義:就一個類而言,應(yīng)該僅有一個引起它變化的原因。

      4.開閉原則定義

      開閉原則定義:一個軟件實體應(yīng)當(dāng)對擴(kuò)展開放,對修改關(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)該依賴于細(xì)節(jié),細(xì)節(jié)應(yīng)該依賴于抽象。

      另一種表述為:要針對接口編程,不要針對實現(xiàn)編程。

      7.接口隔離原則定義

      接口隔離原則定義:客戶端不應(yīng)該依賴那些它不需要的接口。注意:在該定義中的接口指的是所定義的方法。

      另一種定義方法:一旦一個接口太大,則需要將它分割成一些更細(xì)小的接口,使用該接口的客戶端僅需知道與之相關(guān)的方法即可。

      8.合成復(fù)用原則定義

      合成復(fù)用原則,又稱為組合/聚合復(fù)用原則,其定義如下:盡量使用對象組合,而不是繼承來達(dá)到復(fù)用的目的。

      9.迪米特法則定義

      迪米特法則,又稱為最少知識原則,它有多種定義方法,其中幾種典型定義如下:

      (1)

      不要和“陌生人”說話。

      (2)

      只與你的直接朋友通信。

      (3)

      每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關(guān)的軟件單位。

      第三章

      1.模式的定義

      每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心,通過這種方式,我們可以無數(shù)次地重用那些已有的解決方案,無需再重復(fù)相同的工作??梢杂靡痪湓捄唵伪硎緸椋?/p>

      模式是在特定環(huán)境中解決問題的一種方案。

      2.設(shè)計模式的定義

      設(shè)計模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計經(jīng)驗的總結(jié),使用設(shè)計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。

      3.設(shè)計模式的基本要素

      設(shè)計模式一般有如下幾個基本要素:模式名稱、問題、目的、解決方案、效果、實例代碼和相關(guān)設(shè)計模式,其中的關(guān)鍵元素包括以下四個方面:模式名稱、問題、解決方案、效果。

      4.設(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)性。

      5.GoF設(shè)計模式簡介

      GoF

      最先將模式的概念引入軟件工程領(lǐng)域,他們歸納發(fā)表了23種在軟件開發(fā)中使用頻率較高的設(shè)計模式,旨在用模式來統(tǒng)一溝通面向?qū)ο蠓椒ㄔ诜治觥⒃O(shè)計和實現(xiàn)間的鴻溝。

      6.設(shè)計模式的優(yōu)點

      設(shè)計模式是從許多優(yōu)秀的軟件系統(tǒng)中總結(jié)出的成功的、能夠?qū)崿F(xiàn)可維護(hù)性復(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ù)用與擴(kuò)展。

      8.設(shè)計模式基本原則(?)

      同面向?qū)ο笤O(shè)計原則。

      廣義工廠模式包括:簡單工廠模式、工廠方法模式、抽象工廠模式。

      第四章

      簡單工廠模式——不是GoF23種模式中的一員

      補充:創(chuàng)建型模式概述:

      創(chuàng)建型模式對類的實例化過程進(jìn)行了抽象,能夠?qū)④浖K中對象的創(chuàng)建和對象的使用分離。創(chuàng)建型模式在創(chuàng)建什么(What),由誰創(chuàng)建(Who),何時創(chuàng)建(When)等方面都為軟件設(shè)計者提供了盡可能大的靈活性。創(chuàng)建型模式隱藏了類的實例的創(chuàng)建細(xì)節(jié),通過隱藏對象如何被創(chuàng)建和組合在一起達(dá)到使整個系統(tǒng)獨立的目的。

      1.定義:

      簡單工廠模式:又稱為靜態(tài)工廠方法模式,它屬于類創(chuàng)建型模式。在簡單工廠模式中,可以根據(jù)參數(shù)的不同返回不同類的實例。簡單工廠模式專門定義一個類來負(fù)責(zé)創(chuàng)建其他類的實例,被創(chuàng)建的實例通常都具有共同的父類。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      簡單工廠模式最大的優(yōu)點在于實現(xiàn)對象的創(chuàng)建和對象的使用分離,將對象的創(chuàng)建交給專門的工廠類負(fù)責(zé);但是其最大的缺點在于工廠類不夠靈活,增加新的具體產(chǎn)品需要修改工廠類的判斷邏輯代碼,而且產(chǎn)品較多時,工廠方法代碼將會非常復(fù)雜。

      第五章

      工廠方法模式

      1.定義:

      工廠方法模式又稱為工廠模式,也叫虛擬構(gòu)造器模式或者多態(tài)工廠模式,它屬于類創(chuàng)建型模式。在工廠方法模式中,工廠父類負(fù)責(zé)定義創(chuàng)建產(chǎn)品對象的公共接口,而工廠子類則負(fù)責(zé)生成具體的產(chǎn)品對象,這樣做的目的是將產(chǎn)品類的實例化操作延遲到工廠子類中完成,即通過工廠子類來確定究竟應(yīng)該實例化哪一個具體產(chǎn)品類。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      工廠方法模式的主要優(yōu)點是增加新的產(chǎn)品類時無須修改現(xiàn)有系統(tǒng),并封裝了產(chǎn)品對象的創(chuàng)建細(xì)節(jié),系統(tǒng)具有良好的靈活性和可擴(kuò)展性;其缺點在于增加新產(chǎn)品的同時需要增加新的工廠,導(dǎo)致系統(tǒng)類的個數(shù)成對增加,在一定程度上增加了系統(tǒng)的復(fù)雜性。

      第六章

      抽象工廠模式

      1.定義:

      抽象工廠模式:提供一個創(chuàng)建一系列相關(guān)或相互依賴對象的接口,而無須指定它們具體的類。抽象工廠模式又稱為Kit模式,屬于對象創(chuàng)建型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      抽象工廠模式的主要優(yōu)點是隔離了具體類的生成,使得客戶并不需要知道什么被創(chuàng)建,而且每次可以通過具體工廠類創(chuàng)建一個產(chǎn)品族中的多個對象,增加或者替換產(chǎn)品族比較方便,增加新的具體工廠和產(chǎn)品族很方便;主要缺點在于增加新的產(chǎn)品等級結(jié)構(gòu)很復(fù)雜,需要修改抽象工廠和所有的具體工廠類,對“開閉原則”的支持呈現(xiàn)傾斜性。

      第七章

      建造者模式

      1.定義:

      建造者模式:將一個復(fù)雜對象的構(gòu)建與它的表示分離,使得同樣的構(gòu)建過程可以創(chuàng)建不同的表示。建造者模式是一步一步創(chuàng)建一個復(fù)雜的對象,它允許用戶只通過指定復(fù)雜對象的類型和內(nèi)容就可以構(gòu)建它們,用戶不需要知道內(nèi)部的具體構(gòu)建細(xì)節(jié)。建造者模式屬于對象創(chuàng)建型模式。根據(jù)中文翻譯的不同,建造者模式又可以稱為生成器模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      建造者模式的主要優(yōu)點在于客戶端不必知道產(chǎn)品內(nèi)部組成的細(xì)節(jié),將產(chǎn)品本身與產(chǎn)品的創(chuàng)建過程解耦,使得相同的創(chuàng)建過程可以創(chuàng)建不同的產(chǎn)品對象,每一個具體建造者都相對獨立,而與其他的具體建造者無關(guān),因此可以很方便地替換具體建造者或增加新的具體建造者,符合“開閉原則”,還可以更加精細(xì)地控制產(chǎn)品的創(chuàng)建過程;其主要缺點在于由于建造者模式所創(chuàng)建的產(chǎn)品一般具有較多的共同點,其組成部分相似,因此其使用范圍受到一定的限制,如果產(chǎn)品的內(nèi)部變化復(fù)雜,可能會導(dǎo)致需要定義很多具體建造者類來實現(xiàn)這種變化,導(dǎo)致系統(tǒng)變得很龐大。

      第八章

      原型模式

      1.定義:

      原型模式:原型模式是一種對象創(chuàng)建型模式,用原型實例指定創(chuàng)建對象的種類,并且通過復(fù)制這些原型創(chuàng)建新的對象。原型模式允許一個對象再創(chuàng)建另外一個可定制的對象,無須知道任何創(chuàng)建的細(xì)節(jié)。原型模式的基本工作原理是通過將一個原型對象傳給那個要發(fā)動創(chuàng)建的對象,這個要發(fā)動創(chuàng)建的對象通過請求原型對象拷貝原型自己來實現(xiàn)創(chuàng)建過程。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      原型模式最大的優(yōu)點在于可以快速創(chuàng)建很多相同或相似的對象,簡化對象的創(chuàng)建過程,還可以保存對象的一些中間狀態(tài);其缺點在于需要為每一個類配備一個克隆方法,因此對已有類進(jìn)行改造比較麻煩,需要修改其源代碼,并且在實現(xiàn)深克隆時需要編寫較為復(fù)雜的代碼。

      第九章

      單例模式

      1.定義:單例模式:單例模式確保某一個類只有一個實例,而且自行實例化并向整個系統(tǒng)提供這個實例,這個類稱為單例類,它提供全局訪問的方法。單例模式的要點有三個:一是某個類只能有一個實例;二是它必須自行創(chuàng)建這個實例;三是它必須自行向整個系統(tǒng)提供這個實例。單例模式是一種對象創(chuàng)建型模式。單例模式又名單件模式或單態(tài)模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      單例模式的主要優(yōu)點在于提供了對唯一實例的受控訪問并可以節(jié)約系統(tǒng)資源;其主要缺點在于因為缺少抽象層而難以擴(kuò)展,且單例類職責(zé)過重。

      第十章

      適配器模式

      補充:結(jié)構(gòu)型模式概述:

      結(jié)構(gòu)型模式(Structural

      Pattern)描述如何將類或者對象結(jié)合在一起形成更大的結(jié)構(gòu),就像搭積木,可以通過簡單積木的組合形成復(fù)雜的、功能更為強(qiáng)大的結(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)型模式。

      1.定義:適配器模式:將一個接口轉(zhuǎn)換成客戶希望的另一個接口,適配器模式使接口不兼容的那些類可以一起工作,其別名為包裝器。適配器模式既可以作為類結(jié)構(gòu)型模式,也可以作為對象結(jié)構(gòu)型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      適配器模式的主要優(yōu)點是將目標(biāo)類和適配者類解耦,增加了類的透明性和復(fù)用性,同時系統(tǒng)的靈活性和擴(kuò)展性都非常好,更換適配器或者增加新的適配器都非常方便,符合“開閉原則”;類適配器模式的缺點是適配器類在很多編程語言中不能同時適配多個適配者類,對象適配器模式的缺點是很難置換適配者類的方法。

      第十一章

      橋接模式

      1.定義:橋接模式:將抽象部分與它的實現(xiàn)部分分離,使它們都可以獨立地變化。它是一種對象結(jié)構(gòu)型模式,又稱為柄體模式或接口模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      橋接模式的主要優(yōu)點是分離抽象接口及其實現(xiàn)部分,是比多繼承方案更好的解決方法,橋接模式還提高了系統(tǒng)的可擴(kuò)充性,在兩個變化維度中任意擴(kuò)展一個維度,都不需要修改原有系統(tǒng),實現(xiàn)細(xì)節(jié)對客戶透明,可以對用戶隱藏實現(xiàn)細(xì)節(jié);其主要缺點是增加系統(tǒng)的理解與設(shè)計難度,且識別出系統(tǒng)中兩個獨立變化的維度并不是一件容易的事情。

      第十二章

      組合模式

      1.定義:組合模式:組合多個對象形成樹形結(jié)構(gòu)以表示“整體-部分”的結(jié)構(gòu)層次。組合模式對單個對象(即葉子對象)和組合對象(即容器對象)的使用具有一致性。組合模式又可以稱為“整體-部分”模式,屬于對象的結(jié)構(gòu)模式,它將對象組織到樹結(jié)構(gòu)中,可以用來描述整體與部分的關(guān)系。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      組合模式的主要優(yōu)點在于可以方便地對層次結(jié)構(gòu)進(jìn)行控制,客戶端調(diào)用簡單,客戶端可以一致的使用組合結(jié)構(gòu)或其中單個對象,用戶就不必關(guān)心自己處理的是單個對象還是整個組合結(jié)構(gòu),簡化了客戶端代碼;其缺點在于使設(shè)計變得更加抽象,且增加新構(gòu)件時可能會產(chǎn)生一些問題,而且很難對容器中的構(gòu)件類型進(jìn)行限制。

      第十三章

      裝飾模式

      1.定義:裝飾模式:動態(tài)地給一個對象增加一些額外的職責(zé),就增加對象功能來說,裝飾模式比生成子類實現(xiàn)更為靈活。其別名也可以稱為包裝器,與適配器模式的別名相同,但它們適用于不同的場合。根據(jù)翻譯的不同,裝飾模式也有人稱之為“油漆工模式”,它是一種對象結(jié)構(gòu)型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      裝飾模式的主要優(yōu)點在于可以提供比繼承更多的靈活性,可以通過一種動態(tài)的方式來擴(kuò)展一個對象的功能,并通過使用不同的具體裝飾類以及這些裝飾類的排列組合,可以創(chuàng)造出很多不同行為的組合,而且具體構(gòu)件類與具體裝飾類可以獨立變化,用戶可以根據(jù)需要增加新的具體構(gòu)件類和具體裝飾類;其主要缺點在于使用裝飾模式進(jìn)行系統(tǒng)設(shè)計時將產(chǎn)生很多小對象,而且裝飾模式比繼承更加易于出錯,排錯也很困難,對于多次裝飾的對象,調(diào)試時尋找錯誤可能需要逐級排查,較為煩瑣。

      第十四章

      外觀模式

      1.定義:外觀模式:外部與一個子系統(tǒng)的通信必須通過一個統(tǒng)一的外觀對象進(jìn)行,為子系統(tǒng)中的一組接口提供一個一致的界面,外觀模式定義了一個高層接口,這個接口使得這一子系統(tǒng)更加容易使用。外觀模式又稱為門面模式,它是一種對象結(jié)構(gòu)型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      外觀模式主要優(yōu)點在于對客戶屏蔽子系統(tǒng)組件,減少了客戶處理的對象數(shù)目并使得子系統(tǒng)使用起來更加容易,它實現(xiàn)了子系統(tǒng)與客戶之間的松耦合關(guān)系,并降低了大型軟件系統(tǒng)中的編譯依賴性,簡化了系統(tǒng)在不同平臺之間的移植過程;其缺點在于不能很好地限制客戶使用子系統(tǒng)類,而且在不引入抽象外觀類的情況下,增加新的子系統(tǒng)可能需要修改外觀類或客戶端的源代碼,違背了“開閉原則”。

      第十五章

      享元模式

      1.定義:享元模式:運用共享技術(shù)有效地支持大量細(xì)粒度對象的復(fù)用。系統(tǒng)只使用少量的對象,而這些對象都很相似,狀態(tài)變化很小,可以實現(xiàn)對象的多次復(fù)用。由于享元模式要求能夠共享的對象必須是細(xì)粒度對象,因此它又稱為輕量級模式,它是一種對象結(jié)構(gòu)型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      享元模式主要優(yōu)點在于它可以極大減少內(nèi)存中對象的數(shù)量,使得相同對象或相似對象在內(nèi)存中只保存一份;其缺點是使得系統(tǒng)更加復(fù)雜,并且需要將享元對象的狀態(tài)外部化,而讀取外部狀態(tài)使得運行時間變長。

      第十六章

      代理模式

      1.定義:

      代理模式:給某一個對象提供一個代理,并由代理對象控制對原對象的引用。代理模式的英文叫做Proxy或Surrogate,它是一種對象結(jié)構(gòu)型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(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é)任鏈模式,它是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      職責(zé)鏈模式的主要優(yōu)點在于可以降低系統(tǒng)的耦合度,簡化對象的相互連接,同時增強(qiáng)給對象指派職責(zé)的靈活性,增加新的請求處理類也很方便;其主要缺點在于不能保證請求一定被接收,且對于比較長的職責(zé)鏈,請求的處理可能涉及到多個處理對象,系統(tǒng)性能將受到一定影響,而且在進(jìn)行代碼調(diào)試時不太方便。

      第十八章

      命令模式

      1.定義:

      命令模式:將一個請求封裝為一個對象,從而使我們可用不同的請求對客戶進(jìn)行參數(shù)化;對請求排隊或者記錄請求日志,以及支持可撤銷的操作。命令模式是一種對象行為型模式,其別名為動作模式或事務(wù)模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      命令模式的主要優(yōu)點在于降低系統(tǒng)的耦合度,增加新的命令很方便,而且可以比較容易地設(shè)計一個命令隊列和宏命令,并方便地實現(xiàn)對請求的撤銷和恢復(fù);其主要缺點在于可能會導(dǎo)致某些系統(tǒng)有過多的具體命令類。

      第十九章

      解釋器模式

      1.定義:

      解釋器模式:定義語言的文法,并且建立一個解釋器來解釋該語言中的句子,這里的“語言”意思是使用規(guī)定格式和語法的代碼,它是一種類行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      解釋器模式的主要優(yōu)點包括易于改變和擴(kuò)展文法,易于實現(xiàn)文法并增加了新的解釋表達(dá)式的方式;其主要缺點是對于復(fù)雜文法難以維護(hù),執(zhí)行效率較低且應(yīng)用場景很有限。

      第二十章

      迭代器模式

      1.定義:

      迭代器模式:提供一種方法來訪問聚合對象,而不用暴露這個對象的內(nèi)部表示,其別名為游標(biāo)。迭代器模式是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      迭代器模式的主要優(yōu)點在于它支持以不同的方式遍歷一個聚合對象,還簡化了聚合類,而且在同一個聚合上可以有多個遍歷;其缺點在于增加新的聚合類需要對應(yīng)增加新的迭代器類,類的個數(shù)成對增加,這在一定程度上增加了系統(tǒng)的復(fù)雜性。

      第二十一章

      中介者模式

      1.定義:

      中介者模式定義:用一個中介對象來封裝一系列的對象交互,中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。中介者模式又稱為調(diào)停者模式,它是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      中介者模式的主要優(yōu)點在于簡化了對象之間的交互,將各同事解耦,還可以減少子類生成,對于復(fù)雜的對象之間的交互,通過引入中介者,可以簡化各同事類的設(shè)計和實現(xiàn);中介者模式主要缺點在于具體中介者類中包含了同事之間的交互細(xì)節(jié),可能會導(dǎo)致具體中介者類非常復(fù)雜,使得系統(tǒng)難以維護(hù)。

      第二十二章

      備忘錄模式

      1.定義:

      備忘錄模式:在不破壞封裝的前提下,捕獲一個對象的內(nèi)部狀態(tài),并在該對象之外保存這個狀態(tài),這樣可以在以后將對象恢復(fù)到原先保存的狀態(tài)。它是一種對象行為型模式,其別名為Token。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      備忘錄模式的主要優(yōu)點在于它提供了一種狀態(tài)恢復(fù)的實現(xiàn)機(jī)制,使得用戶可以方便地回到一個特定的歷史步驟,還簡化了原發(fā)器對象,備忘錄只保存原發(fā)器的狀態(tài),采用堆棧來存儲備忘錄對象可以實現(xiàn)多次撤消操作,可以通過在負(fù)責(zé)人中定義集合對象來存儲多個備忘錄;備忘錄模式的主要缺點在于資源消耗過大,因為每一個歷史狀態(tài)的保存都需要一個備忘錄對象。

      第二十三章

      觀察者模式

      1.定義:

      觀察者模式:定義對象間的一種一對多依賴關(guān)系,使得每當(dāng)一個對象狀態(tài)發(fā)生改變時,其相關(guān)依賴對象皆得到通知并被自動更新。觀察者模式又叫做發(fā)布-訂閱模式、模型-視圖模式、源-監(jiān)聽器模式或從屬者模式。觀察者模式是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      觀察者模式的主要優(yōu)點在于可以實現(xiàn)表示層和數(shù)據(jù)邏輯層的分離,并在觀察目標(biāo)和觀察者之間建立一個抽象的耦合,支持廣播通信;其主要缺點在于如果一個觀察目標(biāo)對象有很多直接和間接的觀察者的話,將所有的觀察者都通知到會花費很多時間,而且如果在觀察者和觀察目標(biāo)之間有循環(huán)依賴的話,觀察目標(biāo)會觸發(fā)它們之間進(jìn)行循環(huán)調(diào)用,可能導(dǎo)致系統(tǒng)崩潰。

      第二十四章

      狀態(tài)模式

      1.定義:

      狀態(tài)模式:允許一個對象在其內(nèi)部狀態(tài)改變時改變它的行為,對象看起來似乎修改了它的類。其別名為狀態(tài)對象,狀態(tài)模式是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      狀態(tài)模式的主要優(yōu)點在于封裝了轉(zhuǎn)換規(guī)則,并枚舉可能的狀態(tài),它將所有與某個狀態(tài)有關(guān)的行為放到一個類中,并且可以方便地增加新的狀態(tài),只需要改變對象狀態(tài)即可改變對象的行為,還可以讓多個環(huán)境對象共享一個狀態(tài)對象,從而減少系統(tǒng)中對象的個數(shù);其缺點在于使用狀態(tài)模式會增加系統(tǒng)類和對象的個數(shù),且狀態(tài)模式的結(jié)構(gòu)與實現(xiàn)都較為復(fù)雜,如果使用不當(dāng)將導(dǎo)致程序結(jié)構(gòu)和代碼的混亂,對于可以切換狀態(tài)的狀態(tài)模式不滿足“開閉原則”的要求。

      第二十五章

      策略模式

      1.定義:

      策略模式:定義一系列算法,將每一個算法封裝起來,并讓它們可以相互替換。策略模式讓算法獨立于使用它的客戶而變化,也稱為政策模式。策略模式是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      策略模式主要優(yōu)點在于對“開閉原則”的完美支持,在不修改原有系統(tǒng)的基礎(chǔ)上可以更換算法或者增加新的算法,它很好地管理算法族,提高了代碼的復(fù)用性,是一種替換繼承,避免多重條件轉(zhuǎn)移語句的實現(xiàn)方式;其缺點在于客戶端必須知道所有的策略類,并理解其區(qū)別,同時在一定程度上增加了系統(tǒng)中類的個數(shù),可能會存在很多策略類。

      第二十六章

      模板方法模式

      1.定義:

      模板方法模式:定義一個操作中算法的骨架,而將一些步驟延遲到子類中,模板方法使得子類可以不改變一個算法的結(jié)構(gòu)即可重定義該算法的某些特定步驟。模板方法是一種類行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      模板方法模式的優(yōu)點在于在子類定義詳細(xì)的處理算法時不會改變算法的結(jié)構(gòu),實現(xiàn)了代碼的復(fù)用,通過對子類的擴(kuò)展可以增加新的行為,符合“開閉原則”;其缺點在于需要為每個不同的實現(xiàn)都定義一個子類,這會導(dǎo)致類的個數(shù)增加,系統(tǒng)更加龐大,設(shè)計也更加抽象。

      第二十七章

      訪問者模式

      1.定義:

      訪問者模式:表示一個作用于某對象結(jié)構(gòu)中的各元素的操作,它使我們可以在不改變各元素的類的前提下定義作用于這些元素的新操作。訪問者模式是一種對象行為型模式。

      2.結(jié)構(gòu)圖:

      3.主要優(yōu)缺點:

      訪問者模式的主要優(yōu)點在于使得增加新的訪問操作變得很容易,將有關(guān)元素對象的訪問行為集中到一個訪問者對象中,而不是分散到一個個的元素類中,還可以跨過類的等級結(jié)構(gòu)訪問屬于不同的等級結(jié)構(gòu)的元素類,讓用戶能夠在不修改現(xiàn)有類層次結(jié)構(gòu)的情況下,定義該類層次結(jié)構(gòu)的操作;其主要缺點在于增加新的元素類很困難,而且在一定程度上破壞系統(tǒng)的封裝性。

      下載設(shè)計模式復(fù)習(xí)提綱word格式文檔
      下載設(shè)計模式復(fù)習(xí)提綱.doc
      將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
      點此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報,并提供相關(guān)證據(jù),工作人員會在5個工作日內(nèi)聯(lián)系你,一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        教學(xué)系統(tǒng)設(shè)計復(fù)習(xí)提綱

        梅瑞爾知識分類 學(xué)習(xí)動機(jī)的模型ARCS 加涅學(xué)習(xí)結(jié)果 教學(xué)內(nèi)容分析的方法以及能夠用歸類分析法確定教學(xué)內(nèi)容 教學(xué)組織策略的“宏策略”和“微策略”兩類。 認(rèn)知領(lǐng)域的目標(biāo)層次......

        教學(xué)設(shè)計考研復(fù)習(xí)提綱

        《教學(xué)設(shè)計》課程復(fù)習(xí)提綱 一、名詞解釋 教學(xué)設(shè)計教學(xué)系統(tǒng) 教學(xué)過程 教學(xué)產(chǎn)品 學(xué)習(xí)需求 教學(xué)大綱 課程標(biāo)準(zhǔn) 教學(xué)內(nèi)容 教學(xué)對象 學(xué)習(xí)者 教學(xué)目標(biāo) 教學(xué)策略 教學(xué)資源 教學(xué)媒......

        設(shè)計模式小結(jié)

        -----摘自設(shè)計模式之禪 一、創(chuàng)建類模式: 包括工廠方法模式、建造者模式、抽象工廠模式、單例模式和原型模式,提供對象的創(chuàng)建和管理職能。 1、單例模式是要保持在內(nèi)存中只有......

        教學(xué)設(shè)計模式

        淺談教學(xué)設(shè)計模式 作者:谷利紅 于媛來源:《學(xué)園》2013年第01期【摘 要】教學(xué)設(shè)計模式是教學(xué)設(shè)計理論向教學(xué)實踐轉(zhuǎn)化的橋梁。傳統(tǒng)教學(xué)設(shè)計模式解決設(shè)計中“做什么”的問題,而以......

        教學(xué)設(shè)計模式

        教學(xué)設(shè)計模式——迪克-凱瑞模式 迪科-凱利(Dick & Carey)模式(如下圖)是典型的基于行為主義的教學(xué)系統(tǒng)開發(fā)模式。該模式從確定教學(xué)目標(biāo)開始,到終結(jié)性評價結(jié)束,組成一個完整的教學(xué)......

        設(shè)計模式心得體會

        設(shè)計模式心得體會 ----------計算機(jī)學(xué)院軟件工程14-1BF 黃東東 通過一個學(xué)期的設(shè)計模式的學(xué)習(xí),我想在這里談一談我在學(xué)習(xí)設(shè)計模式中的一些想法,不一定正確,首先我對設(shè)計模式的......

        設(shè)計模式心得體會

        設(shè)計模式心得體會設(shè)計模式心得體會(2): 從一開始學(xué)習(xí)設(shè)計模式至今已半年有余了,第一次接觸設(shè)計模式是一次不經(jīng)意間在網(wǎng)上看到《大話設(shè)計模式》一書,看了前言了第一章后,就感覺到......

        設(shè)計模式心得體會

        設(shè)計模式心得體會 7月初的一個周末,準(zhǔn)確的說應(yīng)該是7月1號周六,在網(wǎng)上看到一本《大話設(shè)計模式》的書,而且看到很多很好的評論,于是乎,下載了電子書看看,一下子看了幾章之后,對設(shè)計模......