設計模式概念
設計模式(Design Pattern)是軟件開發人員在軟件開發過程中面臨的一般問題的解決方案。這些解決方案是衆多軟件開發人員經過相當長的一段時間的試驗和錯誤分類編目的優秀代碼設計經驗的總結。所以使用設計模式目的爲了能夠重用代碼、使代碼更易理解、更具有可靠性。
設計模式要素
- 模式名稱
- 問題
- 初始環境
- 解決方案
- 效果
- 舉例
- 末態環境
- 推理
- 其他有關模式
- 已知的應用
設計模式分類
常用的設計模式可以概括爲23種,按照特點可以分爲三大類型
- 創建型
- 結構型
- 行爲型
創建型
創建型模式主要用於創建對象,抽象實例化的過程,幫助一個系統獨立於其關聯對象的創建、組合及表示方式。
創建型模式都有以下兩個主要功能
- 1.將系統所使用的具體類的信息封裝起來;
- 2.隱藏類實例的創建和組織方式。外界對於這些對象只知道他們共同的忌口,無需關注具體的實現細節。
所以,創建型模型主要關注點是:3w–when,who,what
什麼時候由誰創建了什麼。
常見的創建型設計模式:
- 單例模式(Singleton)
- 工廠方法模式(Factory)
- 抽象工廠模式(Abstract)
- 建造者模式(Builder)
- 原型模式(Prototype)
結構型
結構型模式主要關注類和對象的結構,它採用繼承機制來組合接口或實現,或通過組合一些對象實現新功能。雖然結構型模式在某些方面具有很多的相似性,但側重點各有不同。
常見的結構型設計模式:
- 代理模式(Proxy)
- 裝飾模式(Decorator)
- 適配器模式(Adapter)
- 組合模式(Composite)
- 橋樑模式(Bridge)
- 外觀模式(Facade)
- 享元模式(Flyweight)
行爲型
行爲型設計模式關注對象的行爲,主要用來解決對象自建的聯繫問題。
常見的行爲型設計模式:
- 模板方法模式(Template Method)
- 命令模式(Command)
- 責任鏈模式(Chain of Responsibility)
- 策略模式(Strategy)
- 迭代器模式(Iterator)
- 中介者模式(Mediator)
- 觀察者模式(Observer)
- 備忘錄模式(Memento)
- 訪問者模式(Visitor)
- 狀態模式(State)
- 解釋器模式(Interpreter)