Design Pattern 23種經典設計模式原始碼詳解
經典設計模式原始碼詳解,用不同語言來實作,包括Java/JS/Python/TypeScript/Go等,結合實際場景,充分注釋說明,每一行代碼都經過檢驗,確保可靠,
設計模式是一個程式員進階高級的必然選擇,不懂設計模式,就像寫文章不懂得層次,蓋房子沒有結構,只有充分懂得設計之道,才能真正設計出良好的軟體和系統來,
每一種語言都有自己的特色,設計模式首推用Java語言來實作,因為Java相對最全面,也非常規整,
其他語言有自己的優勢,并不需要像Java那么啰嗦就可以實作良好的設計模式,因此通過不同語言之間的對比,可以更好地理解各種語言的差異,真正理解編程之道,
詳細請訪問:https://github.com/microwind/design-pattern
設計模式結構圖

設計模式例子
每一個例子都經過精心設計,提供UML設計圖,作用說明以及創建步驟,

原始碼例子
創建型
-
工廠模式(Factory Pattern) ,由工廠類提供統一的創建物件的方法, Java | JavaScript | Python | TypeScript | Go
-
抽象工廠模式(Abstract Factory Pattern) ,是一個超級工廠,用來創建其他工廠方法, Java | JavaScript | Python | TypeScript | Go
-
原型模式(Prototype Pattern) ,利用clone()復制已有物件的實體, Java | JavaScript | Python | TypeScript | Go
-
建造者模式(Builder Pattern) ,利用多個簡單物件逐步構建一個復雜物件,類似建造房子, Java | JavaScript | Python | TypeScript | Go
-
單例模式(Singleton Pattern) ,保證創建的類只有一個實體,并提供一個訪問該實體的全域節點, Java | JavaScript | Python | TypeScript | Go
結構型
-
配接器模式(Adapter Pattern) ,為兩個不兼容的介面提供專門兼容方案, Java | JavaScript | Python | TypeScript | Go
-
橋接模式(Bridge Pattern) ,將類拆分為抽象和實作兩個獨立的層次結構進行解耦, Java | JavaScript | Python | TypeScript | Go
-
組合模式(Composite Pattern) ,依據樹形結構來組合物件,用不同組件來構建某個部分或整體物件, Java | JavaScript | Python | TypeScript | Go
-
裝飾器模式(Decorator Pattern) ,將物件放入到一個特殊封裝的物件中,賦予其新的能力, Java | JavaScript | Python | TypeScript | Go
-
外觀模式(Facade Pattern) ,給現有的系統添加一個高層介面,隱藏子系統的復雜性, Java | JavaScript | Python | TypeScript | Go
-
享元模式(Flyweight Pattern) ,通過共享多個物件的相同狀態,讓有限的記憶體容量載入更多物件, Java | JavaScript | Python | TypeScript | Go
-
代理模式(Proxy Pattern) ,用一個類來代理另一個類或幾個類的功能, Java | JavaScript | Python | TypeScript | Go
-
過濾器模式(Filter Pattern) ,使用不同的標準條件來過濾一組物件,并通過邏輯運算的方式把各條件連接起來, Java | JavaScript | Python | TypeScript | Go
行為型
-
策略模式(Strategy Pattern) ,將每一個演算法策略封裝到介面中,根據需要設定策略,使具體實作和策略解耦, Java | JavaScript | Python | TypeScript | Go
-
觀察者模式(Observer Pattern) ,當主題物件的狀態發生改變時,所有依賴物件都得到通知并被自動更新, Java | JavaScript | Python | TypeScript | Go
-
迭代器模式(Iterator Pattern) ,給資料物件構建一套按順序訪問集合物件元素的方式, Java | JavaScript | Python | TypeScript | Go
-
模板方法模式(Template Method Pattern) ,定義了一個抽象公開類,包含基本的演算法骨架,而將一些步驟延遲到子類中, Java | JavaScript | Python | TypeScript | Go
-
責任鏈模式(Chain of Responsibility Pattern) ,為請求創建了一個接收者物件的鏈,請求沿著處理者鏈進行發送和處理, Java | JavaScript | Python | TypeScript | Go
-
命令模式(Command Pattern) ,把請求以命令的形式包裹在物件中,并傳給呼叫物件, Java | JavaScript | Python | TypeScript | Go
-
備忘錄模式(Memento Pattern) ,將物件的狀態捕捉住,并以備忘錄的形式存盤起來,以便合適的時候還原, Java | JavaScript | Python | TypeScript | Go
-
狀態模式(State Pattern) ,類的行為是基于它的狀態改變的,不同的狀態下有不同的行為, Java | JavaScript | Python | TypeScript | Go
-
訪問者模式(Visitor Pattern) ,封裝訪問者類,把各元素類的操作集合起來,目的是將資料結構與資料操作分離, Java | JavaScript | Python | TypeScript | Go
-
中介者模式(Mediator Pattern) ,它用一個中介物件來封裝一系列的動作,以讓物件之間進行交流, Java | JavaScript | Python | TypeScript | Go
-
解釋器模式(Interpreter Pattern) ,實作了一個運算式介面,并能解釋特定的背景關系里面的變數和陳述句, Java | JavaScript | Python | TypeScript | Go
設計模式原始碼地址
詳細請訪問:https://github.com/microwind/design-pattern

詳細請訪問:https://github.com/microwind/design-pattern
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/549084.html
標籤:其他
