GoF的23種設計模式,以最通俗易懂的方式向大家介紹原理。
面向對象7大設計原則詳解
23種設計模式詳解
設計模式 | 定義 | 設計模式詳解 |
抽象工廠模式 | 抽象工廠模式(Abstract Factory Pattern)提供一個創建一系列相關或相互依賴對象的接口,而無須指定它們具體的類。抽象工廠模式又稱為Kit模式,屬於對象創建型模式。 |
https://geek-docs.com/design-pattern/abstract-factory |
工廠方法模式 | 工廠方法模式是簡單工廠模式的進一步抽象和推廣,是GoF設計模式的一種。由於使用了面向對象的多態性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。 |
https://geek-docs.com/design-pattern/factory-method |
建造者模式 | 建造者模式(Builder Pattern):將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 |
https://geek-docs.com/design-pattern/builder-pattern |
原型模式 | 原型模式(Prototype Pattern)是一種創建型設計模式,使你能夠復制已有對象,而又無需使代碼依賴它們所屬的類。 |
https://geek-docs.com/design-pattern/prototype-pattern |
單例模式 | 單例模式(Singleton Pattern)是一種創建型設計模式, 讓你能夠保證一個類只有一個實例, 並提供一個訪問該實例的全局節點。 | https://geek-docs.com/design-pattern/singleton-pattern |
適配器模式 | 適配器模式(Adapter Pattern) 是一種結構型設計模式, 它能使接口不兼容的對象能夠相互合作。 | https://geek-docs.com/design-pattern/adapter-pattern |
橋接模式 | 橋接模式(Bridge Pattern)是一種結構型設計模式, 可將一個大類或一系列緊密相關的類拆分為抽象和實現兩個獨立的層次結構, 從而能在開發時分別使用。 |
https://geek-docs.com/design-pattern/bridge-pattern |
組合模式 | 組合模式(Composite Pattern)是一種結構型設計模式, 你可以使用它將對象組合成樹狀結構,並且能像使用獨立對象一樣使用它們。 |
https://geek-docs.com/design-pattern/composite-pattern |
裝飾者模式 | 裝飾者模式(Decorator Pattern) 是一種結構型設計模式, 允許你通過將對象放入包含行為的特殊封裝對象中來為原對象綁定新的行為。 |
https://geek-docs.com/design-pattern/decorator-pattern |
外觀模式 | 外觀模式(Facade Pattern)是一種結構型設計模式, 能為程序庫、 框架或其他復雜類提供一個簡單的接口。 |
https://geek-docs.com/design-pattern/facade-pattern |
享元模式 | 是一種結構型設計模式, 它摒棄了在每個對象中保存所有數據的方式, 通過共享多個對象所共有的相同狀態, 讓你能在有限的內存容量中載入更多對象。 | https://geek-docs.com/design-pattern/flyweight-pattern |
代理模式 | 是一種結構型設計模式, 讓你能夠提供對象的替代品或其占位符。 代理控制着對於原對象的訪問, 並允許在將請求提交給對象前后進行一些處理。 | https://geek-docs.com/design-pattern/proxy-pattern |
責任鏈模式 | 是一種行為型設計模式。允許你將請求沿着處理者鏈進行發送。 收到請求后, 每個處理者均可對請求進行處理, 或將其傳遞給鏈上的下個處理者。 | https://geek-docs.com/design-pattern/chain-of-responsibility |
命令模式 | 是一種行為設計模式, 它可將請求轉換為一個包含與請求相關的所有信息的獨立對象。 | https://geek-docs.com/design-pattern/command-pattern |
迭代器模式 | 是一種行為設計模式, 讓你能在不暴露集合底層表現形式 (列表、 棧和樹等) 的情況下遍歷集合中所有的元素。 | https://geek-docs.com/design-pattern/iterator-pattern |
中介者模式 | 是一種行為設計模式, 能讓你減少對象之間混亂無序的依賴關系。 該模式會限制對象之間的直接交互, 迫使它們通過一個中介者對象進行合作。 | https://geek-docs.com/design-pattern/mediator-pattern |
備忘錄模式 | 是一種行為設計模式, 允許在不暴露對象實現細節的情況下保存和恢復對象之前的狀態。 | https://geek-docs.com/design-pattern/memento-pattern |
觀察者模式 | 是一種行為設計模式, 允許你定義一種訂閱機制, 可在對象事件發生時通知多個 “觀察” 該對象的其他對象。 | https://geek-docs.com/design-pattern/observer-pattern |
狀態模式 | 是一種行為設計模式, 讓你能在一個對象的內部狀態變化時改變其行為, 使其看上去就像改變了自身所屬的類一樣。 | https://geek-docs.com/design-pattern/state-pattern |
策略模式 | 是一種行為設計模式, 它能讓你定義一系列算法, 並將每種算法分別放入獨立的類中, 以使算法的對象能夠相互替換。 | https://geek-docs.com/design-pattern/strategy-pattern |
模板方法模式 | 是一種行為設計模式, 它在超類中定義了一個算法的框架, 允許子類在不修改結構的情況下重寫算法的特定步驟。 | https://geek-docs.com/design-pattern/template-method-pattern |
訪問者模式 | 是一種行為型設計模式, 訪問者模式能將算法與其所作用的對象隔離開來。 | https://geek-docs.com/design-pattern/visitor-pattern |