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