設計模式分類
根據目的分類
23種設計模式根據目的來劃分可以分爲創建型模式、結構型模式、行爲型模式。
- 創建型模式:用於描述“怎樣創建對象”,它的主要特點是“將對象的創建與使用分離”。設計模式中提供了單例、原型、工廠方法、抽象工廠、建造者等 5 種創建型模式。
- 結構型模式:用於描述如何將類或對象按某種佈局組成更大的結構,設計模式中提供了代理、適配器、橋接、裝飾、外觀、享元、組合等 7 種結構型模式。
- 行爲型模式:用於描述類或對象之間怎樣相互協作共同完成單個對象都無法單獨完成的任務,以及怎樣分配職責。設計模式中提供了模板方法、策略、命令、職責鏈、狀態、觀察者、中介者、迭代器、訪問者、備忘錄、解釋器等 11 種行爲型模式。
根據作用範圍分類
根據模式是主要用於類上還是主要用於對象上來分,這種方式可分爲類模式和對象模式兩種。
- 類模式:用於處理類與子類之間的關係,這些關係通過繼承來建立,是靜態的,在編譯時刻便確定下來了。設計模式中的工廠方法、(類)適配器、模板方法、解釋器屬於該模式。
- 對象模式:用於處理對象之間的關係,這些關係可以通過組合或聚合來實現,在運行時刻是可以變化的,更具動態性。設計模式中除了以上 4 種,其他的都是對象模式。
23 種設計模式的分類表
範圍/目的 | 創建型模式 | 結構型模式 | 行爲型模式 |
---|---|---|---|
類模式 | 工廠方法 | (類)適配器 | 模板方法、解釋器 |
對象模式 | 單例、 原型、 抽象工廠、 建造者 |
代理、 (對象)適配器、橋接、 裝飾、外觀、 享元、組合 |
策略、命令、 職責鏈、狀態、 觀察者、中介者、迭代器、 訪問者、備忘錄 |
設計模式系列將在後面圍繞設計模式目的分類逐一介紹23中設計模式。