設計模式(Design Parttern)
我要正兒八經的弄懂設計模式。這是開始,先搞明白的什麼是設計模式。
定義
設計模式是一套被 反覆使用、多數人知曉、經過分類編目的、程式碼設計經驗的總結。
為什麼要用設計模式
為了 可重用 程式碼,讓程式碼更容易的被他人理解並保證程式碼的 可靠性。
誰這麼叼設計牛模式
四人組( Gang of Four ),簡稱 GoF ,分別是 Erich Gamma, Richard Helm , Ralph Johnson 和 John Vlissides 。但不是他們設計的,是他們在 95年的時候整理歸納 23 種最常用的設計模式並會變成一本書 Design Patterns: Elements of Reusable Object-Oriented Software 就是:《設計模式:可複用物件導向軟體的基礎》 。是經過時間的驗證的,大家一定要學會。
怎麼學
balabala ...
設計模式最重要的 4 個元素 模式名稱 (Parttern Name)、 問題(Problem) 、 解決方案 (Solution) 、 效果 (Consequences)。
學習設計模式我們就從這 4 個元素出發。一個一個弄清楚它。
- 模式名稱 (Parttern Name)
就是這個模式的名字。簡單明瞭的命名。 - 問題 (Problem)
描述了應該在何時使用模式,它包含了設計中存在的問題以及問題存在的原因 - 解決方案 (Solution)
該框架的解決方案。就是如何設計這個模式。描述了一個設計模式的組成成分,以及這些組成成分之間的相互關係,各自的職責和協作方式,通常解決方案通過UML類圖和核心程式碼來進行描述。 - 效果 (Consequences)
描述了模式的優缺點以及在使用模式時應權衡的問題 (呈現)說到這裡,你都有啥框架
我們要掌握的應該除了GoF 說的 23 種模式還有加一個 簡單工廠模式 (Simple Factory Pattern)也很常用還簡單。我順手就學會了。
來個預覽先(參考)
型別 | 模式名稱 | 學習難度 | 使用頻率 |
建立型模式 Creational Pattern | 單例模式 Singleton Pattern | ★☆☆☆☆ | ★★★★☆ |
簡單工廠模式 Simple Factory Pattern | ★★☆☆☆ | ★★★☆☆ | |
工廠方法模式 Factory Method Pattern | ★★☆☆☆ | ★★★★★ | |
抽象工廠模式 Abstract Factory Pattern | ★★★★☆ | ★★★★★ | |
原型模式 Prototype Pattern | ★★★☆☆ | ★★★☆☆ | |
建造者模式 Builder Pattern | ★★★★☆ | ★★☆☆☆ | |
結構型模式 Structural Pattern | 介面卡模式 Adapter Pattern | ★★☆☆☆ | ★★★★☆ |
橋接模式 Bridge Pattern | ★★★☆☆ | ★★★☆☆ | |
組合模式 Composite Pattern | ★★★☆☆ | ★★★★☆ | |
裝飾模式 Decorator Pattern | ★★★☆☆ | ★★★☆☆ | |
外觀模式 Façade Pattern | ★☆☆☆☆ | ★★★★★ | |
享元模式 Flyweight Pattern | ★★★★☆ | ★☆☆☆☆ | |
代理模式 Proxy Pattern | ★★★☆☆ | ★★★★☆ | |
行為型模式 Behavioral Pattern | 職責鏈模式 Chain of Responsibility Pattern | ★★★☆☆ | ★★☆☆☆ |
命令模式 Command Pattern | ★★★☆☆ | ★★★★☆ | |
直譯器模式 Interpreter Pattern | ★★★★★ | ★☆☆☆☆ | |
迭代器模式 Iterator Pattern | ★★★☆☆ | ★★★★★ | |
中介者模式 Mediator Pattern | ★★★☆☆ | ★★☆☆☆ | |
備忘錄模式 Memento Pattern | ★★☆☆☆ | ★★☆☆☆ | |
觀察者模式 Observer Pattern | ★★★☆☆ | ★★★★★ | |
狀態模式 State Pattern | ★★★☆☆ | ★★★☆☆ | |
策略模式 Strategy Pattern | ★☆☆☆☆ | ★★★★☆ | |
模板方法模式 Template Method Pattern | ★★☆☆☆ | ★★★☆☆ | |
訪問者模式 Visitor Pattern | ★★★★☆ | ★☆☆☆☆ |
看圖得知,這是按照用途分為三種: 建立型(Creational, 結構型(Structural, 行為型(Behavioral 三種。
接下來就按照表格 模式名稱這一列順序一一講解。學習難度和使用頻率並不重要,因為我都要會。
更新中:
1. 什麼是設計模式
2. 單例模式
3. 簡單工廠模式
這裡總是最新的
看完給個star鼓勵一下