設計模式是一套被反覆利用的,多數人知曉的,經過分類編目的、代碼設計經驗的總結,使用設計模式是爲了可重用代碼、讓代碼更容易被他人理解並且保證代碼的可靠性。它一般包含模式名稱、問題、目的、解決方案、效果等組成元素,其中關鍵要素是模式名稱、問題、解決方案和效果。
狹義的設計模式是指Gof在《設計模式:可複用面對對象軟件的基礎》一束中所介紹的23種經典設計模式(該書中未包含簡單工廠模式)。
根據用途,可將設計模式分爲三類,創建型、結構型、行爲型。
具體分類如表:
創建型模式 | 結構型模式 | 行爲型模式 |
---|---|---|
單例模式
(Singleton Pattern)
Pattern)
|
適配器模式
(Adapter Pattern)
|
職責鏈模式
(Chain of Responsibility Pattern)
|
簡單工廠模式
(Simple Factory Pattern)
|
橋接模式
(Bridge Pattern)
|
命令模式
(Command Pattern)
|
工廠方法模式
(Factory Method Pattern)
|
組合模式
(Composite Pattern)
|
解釋器模式
(Interpreter Pattern)
|
抽象工廠模式
(Abstract Factory
|
裝飾模式
(Decorator Pattern)
|
迭代器模式
(Iterator Pattern)
|
原型模式
(Prototype Pattern)
|
外觀模式
(Façade Pattern)
|
中介者模式
(Mediator Pattern)
|
建造者模式
(Builder Pattern)
|
享元模式
(Flyweight Pattern)
|
備忘錄模式
(Memento Pattern)
|
代理模式
(Proxy Pattern)
|
觀察者模式
(Observer Pattern)
|
|
狀態模式
(State Pattern)
|
||
策略模式
(Strategy Pattern)
|
||
模版方法模式
(Template Method Pattern)
|
||
訪問者模式
(Visitor Pattern)
|
此外,設計模式提供一套通用的的設計詞彙和一種通用的形式來方便開發人員之間進行溝通和交流,使得設計方案更加通俗易懂。