【設計模式】GoF設計模式學習總結

什麼是設計模式

爲解決某一類廣泛存在的問題而提供的一種解決方案;html

分類及定義

建立型模式(5)設計模式

一、原型模式:經過複製一個已存在對象來生成一個新對象,被複制的對象稱爲原型;詳情...spa

二、單例模式:一個類只有一個全局實例;詳情...設計

三、生成器模式:對複雜對象的建立過程進行抽象,相同的建立步驟,不同的建立過程實現,生成不一樣表示的對象;詳情...3d

四、工廠方法模式:具體的工廠對象負責生產具體的產品對象;詳情...代理

五、抽象工廠模式:就是對一組具備相同主題的工廠進行封裝;詳情...htm

簡單工廠模式:一個工廠方法,依據傳入的參數,生成對應的具體產品對象;//不屬於gof-23 詳情...
對象

結構型模式(7)blog

一、裝飾模式:經過關聯機制給類增長行爲,其行爲的擴展由修飾對象來決定;詳情...排序

二、享元模式:大量細粒度對象共享複用;詳情...

三、橋接模式:將對象的行爲抽象爲接口,做爲抽象類的成員屬性在抽象層進行組合;詳情...

四、組合模式:樹形結構的實現,用於描述「總體-部分」的關係;詳情...

五、外觀模式:在子系統中的接口之上定義一個更高層次的接口,方便使用子系統中的接口;詳情...

六、代理模式:經過代理對象間接控制並訪問目標對象的方法;詳情...

七、適配器模式:適配器是將一種接口改形成另一種接口的一個包裝類;詳情...

行爲型模式(11)

一、解釋器模式:定義一些語法規則,而後定義一個解析器去解析該語法;詳情...

二、訪問者模式:在不修改已有程序結構的前提下,經過添加額外的「訪問者」來完成對已有代碼功能的提高;詳情...

三、備忘錄模式:保存對象的某個狀態並能夠恢復到該狀態;詳情...

四、中介者模式:對象之間經過中介者對象進行交互,而不是直接交互;詳情...

五、模板方法模式:使用了JAVA的繼承機制,在抽象類中定義一個模板方法,該方法引用了若干個抽象方法(由子類實現)或具體方法;詳情...

六、責任鏈模式:爲請求建立一個接收者對象的鏈,每一個接收者包含對另外一個接收者的引用,當某個接受者不能處理該請求時,將請求轉給下一個接受者;詳情...

七、命令模式:將請求封裝成命令對象,請求的具體執行由命令接收者執行;詳情...

八、狀態模式:一個對象的行爲根據其內部狀態的改變自動變化;詳情...

九、策略模式:對象的行爲,在不一樣的環境下,有不一樣的實現;詳情...

十、迭代器模式:提供一種方法訪問一個容器對象中各個元素,而又不需暴露該對象的內部細節。詳情...

十一、觀察者模式:一對多的關係,又叫發佈-訂閱模式,即一個對象的狀態發生變化,全部依賴它的對象可以知道該變化並自動更新;詳情...

涉及的相關的設計原則

  • 單一職責原則
  • 里氏替換原則
  • 依賴倒置原則
  • 接口隔離原則
  • 迪米特法則
  • 開閉原則

使用頻率排序

建立型模式(5)

工廠方法模式:★★★★★

抽象工廠模式:★★★★★

單例模式:★★★★☆

簡單工廠模式:★★★★☆            //不屬於gof-23

原型模式:★★☆☆

生成器模式:★★☆☆

結構型模式(7)

外觀模式:★★★★★

代理模式:★★★★☆

組合模式:★★★★☆

適配器模式:★★★★☆

橋接模式:★★☆☆

裝飾模式:★★☆☆

享元模式:☆☆

行爲型模式(11)

迭代器模式:★★★★★

觀察者模式:★★★★★

命令模式:★★★★☆

策略模式:★★★★☆

模板方法模式:★★★☆☆

責任鏈模式:★★☆☆

狀態模式:★★☆☆

備忘錄模式:★★☆☆

中介者模式:★★☆☆

解釋器模式:☆☆

訪問者模式:☆☆

另外,網上看到一張圖片,總結的挺好的

圖片來自:連接

相關文章
相關標籤/搜索