23種設計模式深入解析,史上最通俗易懂的設計模式講解


GoF的23種設計模式,以最通俗易懂的方式向大家介紹原理。

 

面向對象7大設計原則詳解

設計原則 設計原則定義  設計原則詳解
開閉原則 開閉原則是指一個軟件實體,如類、模塊和函數應該對擴展開放,對修改關閉,也就是說一個軟件實體應該通過擴展來實現變化,而不是通過修改已有的代碼來實現變化。 https://geek-docs.com/design-pattern/design-principle/open-close-principle.html
里氏替換原則 里氏替換原則是關於繼承的一個原則,遵循里氏替換原則能夠更好地發揮繼承的作用,里氏替換原則最早是在1988年,由麻省理工學院的一位姓里的女士(Barbara Liskov)提出來的。 https://geek-docs.com/design-pattern/design-principle/liskov-substitution-principle.html
迪米特原則 迪米特原則它要求一個對象應該對其他對象有最少的了解,所以迪米特法則又叫做最少知識原則。 https://geek-docs.com/design-pattern/design-principle/law-of-demeter.html
單一職責原則 單一職責原則(Single Responsibility Principle)是面向對象設計原則的一種。單一職責原則是指不要存在多於一個導致類變更的原因。通俗的說,即一個類只負責一項職責。 https://geek-docs.com/design-pattern/design-principle/single-responsibility-principle.html
接口分離原則 接口分離原則指在設計時采用多個與特定客戶類有關的接口比采用一個通用的接口要好。 https://geek-docs.com/design-pattern/design-principle/interface-segregation-principle.html
依賴倒置原則 依賴倒置原則指的是高層模塊(穩定)不應該依賴於低層模塊(變化),二者都應該依賴於抽象(穩定)。抽象(穩定)不應該依賴於實現細節(變化),實現細節應該依賴於抽象(穩定)。 https://geek-docs.com/design-pattern/design-principle/dependence-inversion-principle.html
組合/聚合復用原則 組合/聚合復用原則是指盡量使用組合/聚合,不要使用類繼承。 https://geek-docs.com/design-pattern/design-principle/composite-aggregate-reuse-principle.html

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM