學習順序
設計模式
常用程度
適用層次
引入時機
結構複雜度
變化實現
體現的原則
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...
設計模式總結
模式相關的描述 裝飾者 包裝乙個物件,以提供新的行為 狀態 封閉了基於狀態的行為,並使用委託在行為之間切換 迭代器 在物件的集合之間遊走,而不暴露集合的實現 外觀 簡化一群類的介面 策略 封閉可以互換的行為,並使用委託來決定要使用哪乙個 包裝物件,以控制對此物件的訪問 工廠方法 由子類來決定要建立的...
設計模式總結
這類模式的特質是管理物件的建立過程。通常設計總是以使用工廠方法開始,當設計者發現需要更大的靈活性時,設計會向其它建立型模式演化。工廠方法模式 單例模式 抽象工廠方法模式 建造者模式 原型模式 簡單工廠模式 這類模式從程式的結構上解決模組之間的耦合問題。介面卡模式 裝飾模式 橋接模式 組合模式 享元模...