設計模式總結

2022-05-23 14:54:08 字數 2291 閱讀 2824

學習順序

設計模式

常用程度

適用層次

引入時機

結構複雜度

變化實現

體現的原則

1factory method

很常用**級

編碼時簡單

子類的例項化

物件的建立工作延遲到子類

開閉原則

2singleton

很常用**級、應用級

設計時、編碼時

簡單唯一例項

封裝物件產生的個數

3facade

很常用應用級、構架級

設計時、編碼時

簡單子系統的高層介面

封裝子系統

開閉原則

4template method

很常用**級

編碼時、重構時

簡單算法子步驟的變化

封裝演算法結構

依賴倒置原則

5abstract factory

比較常用

應用級設計時

比較複雜

產品家族的擴充套件

封裝產品族系列內容的建立

開閉原則

6composite

比較常用

**級編碼時、重構時

比較複雜

複雜物件介面的統一

統一複雜物件的介面

黎克特制代換原則

7proxy

比較常用

應用級、構架級

設計時、編碼時

簡單物件訪問的變化

封裝物件的訪問過程

黎克特制代換原則

8command

比較常用

應用級設計時、編碼時

比較簡單

請求的變化

封裝行為對物件

開閉原則

9observer

比較常用

應用級、構架級

設計時、編碼時

比較簡單

通訊物件的變化

封裝物件通知

開閉原則

10strategy

比較常用

應用級設計時

一般演算法的變化

封裝演算法

黎克特制代換原則

11builder

一般**級

編碼時一般

物件組建的變化

封裝物件的組建過程

開閉原則

12adapter

一般**級

重構時一般

物件介面的變化

介面的轉換

13bridge

一般**級

設計時、編碼時

一般物件的多維度變化

分離介面以及實現

開閉原則

14decorator

一般**級

重構時比較複雜

物件的組合職責

在穩定介面上擴充套件

開閉原則

15iterator

一般**級、應用級

編碼時、重構時

比較簡單

物件內部集合的變化

封裝物件內部集合的使用

單一職責原則

16mediator

一般應用級、構架級

編碼時、重構時

一般物件互動的變化

封裝物件間的互動

開閉原則

17memento

一般**級

編碼時比較簡單

狀態的輔助儲存

封裝物件狀態的變化

介面隔離原則

18state

一般應用級

設計時、編碼時

一般物件狀態的變化

封裝與狀態相關的行為

單一職責原則

19visitor

一般應用級

設計時比較複雜

物件操作變化

封裝物件操作變化

開閉原則

20prototype

不太常用

應用級編碼時、重構時

比較簡單

例項化的類

封裝對原型的拷貝

依賴倒置原則

21flyweight

不太常用

**級、應用級

設計時一般

系統開銷的優化

封裝物件的獲取

22chain of resp.

不太常用

應用級、構架級

設計時、編碼時

比較複雜

物件的請求過程

封裝物件的責任範圍

23interpreter

不太常用

應用級設計時

比較複雜

領域問題的變化

封裝特定領域的變化

設計模式總結

http www.chenjiliang.com article view.aspx?articleid 6708 比較 設計模式 常用程度 適用層次 引入時機 結構複雜度 abstract factory 比較常用 應用級設計時 比較複雜 builder 一般 級 編碼時一般 factory me...

設計模式總結

模式相關的描述 裝飾者 包裝乙個物件,以提供新的行為 狀態 封閉了基於狀態的行為,並使用委託在行為之間切換 迭代器 在物件的集合之間遊走,而不暴露集合的實現 外觀 簡化一群類的介面 策略 封閉可以互換的行為,並使用委託來決定要使用哪乙個 包裝物件,以控制對此物件的訪問 工廠方法 由子類來決定要建立的...

設計模式總結

這類模式的特質是管理物件的建立過程。通常設計總是以使用工廠方法開始,當設計者發現需要更大的靈活性時,設計會向其它建立型模式演化。工廠方法模式 單例模式 抽象工廠方法模式 建造者模式 原型模式 簡單工廠模式 這類模式從程式的結構上解決模組之間的耦合問題。介面卡模式 裝飾模式 橋接模式 組合模式 享元模...