设计模式建议学习顺序
生活随笔
收集整理的這篇文章主要介紹了
设计模式建议学习顺序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
| 學習順序 | 設計模式 | 常用程度 | 適用層次 | 引入時機 | 結構復雜度 | 變化 | 實現 | 體現的原則 |
| 1 | Factory Method | 很常用 | 代碼級 | 編碼時 | 簡單 | 子類的實例化 | 對象的創建工作延遲到子類 | 開閉原則 |
| 2 | Singleton | 很常用 | 代碼級、應用級 | 設計時、編碼時 | 簡單 | 唯一實例 | 封裝對象產生的個數 | ? |
| 3 | Facade | 很常用 | 應用級、構架級 | 設計時、編碼時 | 簡單 | 子系統的高層接口 | 封裝子系統 | 開閉原則 |
| 4 | Template Method | 很常用 | 代碼級 | 編碼時、重構時 | 簡單 | 算法子步驟的變化 | 封裝算法結構 | 依賴倒置原則 |
| 5 | Abstract Factory | 比較常用 | 應用級 | 設計時 | 比較復雜 | 產品家族的擴展 | 封裝產品族系列內容的創建 | 開閉原則 |
| 6 | Composite | 比較常用 | 代碼級 | 編碼時、重構時 | 比較復雜 | 復雜對象接口的統一 | 統一復雜對象的接口 | 里氏代換原則 |
| 7 | Proxy | 比較常用 | 應用級、構架級 | 設計時、編碼時 | 簡單 | 對象訪問的變化 | 封裝對象的訪問過程 | 里氏代換原則 |
| 8 | Command | 比較常用 | 應用級 | 設計時、編碼時 | 比較簡單 | 請求的變化 | 封裝行為對對象 | 開閉原則 |
| 9 | Observer | 比較常用 | 應用級、構架級 | 設計時、編碼時 | 比較簡單 | 通訊對象的變化 | 封裝對象通知 | 開閉原則 |
| 10 | Strategy | 比較常用 | 應用級 | 設計時 | 一般 | 算法的變化 | 封裝算法 | 里氏代換原則 |
| 11 | Builder | 一般 | 代碼級 | 編碼時 | 一般 | 對象組建的變化 | 封裝對象的組建過程 | 開閉原則 |
| 12 | Adapter | 一般 | 代碼級 | 重構時 | 一般 | 對象接口的變化 | 接口的轉換 | ? |
| 13 | Bridge | 一般 | 代碼級 | 設計時、編碼時 | 一般 | 對象的多維度變化 | 分離接口以及實現 | 開閉原則 |
| 14 | Decorator | 一般 | 代碼級 | 重構時 | 比較復雜 | 對象的組合職責 | 在穩定接口上擴展 | 開閉原則 |
| 15 | Iterator | 一般 | 代碼級、應用級 | 編碼時、重構時 | 比較簡單 | 對象內部集合的變化 | 封裝對象內部集合的使用 | 單一職責原則 |
| 16 | Mediator | 一般 | 應用級、構架級 | 編碼時、重構時 | 一般 | 對象交互的變化 | 封裝對象間的交互 | 開閉原則 |
| 17 | Memento | 一般 | 代碼級 | 編碼時 | 比較簡單 | 狀態的輔助保存 | 封裝對象狀態的變化 | 接口隔離原則 |
| 18 | State | 一般 | 應用級 | 設計時、編碼時 | 一般 | 對象狀態的變化 | 封裝與狀態相關的行為 | 單一職責原則 |
| 19 | Visitor | 一般 | 應用級 | 設計時 | 比較復雜 | 對象操作變化 | 封裝對象操作變化 | 開閉原則 |
| 20 | Prototype | 不太常用 | 應用級 | 編碼時、重構時 | 比較簡單 | 實例化的類 | 封裝對原型的拷貝 | 依賴倒置原則 |
| 21 | Flyweight | 不太常用 | 代碼級、應用級 | 設計時 | 一般 | 系統開銷的優化 | 封裝對象的獲取 | ? |
| 22 | Chain of Resp. | 不太常用 | 應用級、構架級 | 設計時、編碼時 | 比較復雜 | 對象的請求過程 | 封裝對象的責任范圍 | ? |
| 23 | Interpreter | 不太常用 | 應用級 | 設計時 | 比較復雜 | 領域問題的變化 | 封裝特定領域的變化 | ? |
學會一個項目中嘗試有相應的場景使用一個才是王道。
轉載于:https://www.cnblogs.com/guola/archive/2013/01/02/2841997.html
總結
以上是生活随笔為你收集整理的设计模式建议学习顺序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 适配器简介
- 下一篇: C语言控制流对应的汇编语句