一、創建型
01)單例模式(Singleton Pattern)
- 雙null檢查.
02)簡單工廠(靜態方法模式)
- 炒菜:主體依賴抽象,工廠依賴 ==實現==, 判斷傳入的不同字符串,返回不同實現.
03)工廠方法(Factory Method)
- 主體依賴 ==抽象== 與 ==抽象工廠== ,多工廠依賴 ==實現==.
04)抽象工廠(Abstract Factory)
- ==抽象工廠== 里多個 ==抽象方法== ,如多類型數據庫支持.
05)建造者模式(Builder Pattern)
- 組裝電腦:==指揮者Director== 依賴 ==建造者抽象Builder==,按流程調用里面的方法.
- 建造者實現完成建造工作,結果匯總到建造對象.
06)原型模式(Prototype)
- 悟空:實現ICloneable接口Clone方法
二、結構型
07)適配器模式(Adapter)
- 插座:類適配器,繼承要適配的類及新接口,實現新接口調用繼承類方法.
- 對象適配器,繼承要適配的新接口,直接實例化老類,調用老類方法實現新接口.
08)橋接模式(Bridge Pattern)
- 遙控器:抽象類的一個屬性傳入原實現類.
- 對原實現類的方法再包裝
09)裝飾者模式(Decorator Pattern)
- 繼承手機類,構造傳入手機抽象,重寫方法,附加其他實現
10)組合模式(Composite Pattern)
- 圖表:以一致的方式處理單個對象及對象組合,組合類add/Remove抽象列表.
11)外觀模式(門面Facade Pattern)
- 基金: 對子類的包裝,如驗證和實現操作等.
12)享元模式(Flyweight Pattern)
- 字母: 對象共享緩存
13)代理模式(Proxy Pattern)
- 調用驗證:繼承抽象,實例化要代理的類,重寫方法,附加其他實現,和裝飾模式有點像
三、行為型
14)模板方法模式(Template Method)
- 抄菜:抽象里一個公用方法依次調用已實現方法及抽象方法.
15)命令模式(Command Pattern)
- 命令對象構造或參數傳入接收者Receiver context.
- 統一執行方法override void Execute(), 調用接收者的方法.
- 命令工廠case后得到命令對象讓后command.Execute(context);
16)迭代器模式(Iterator Pattern)
- 集合里直接返回迭代器,外部直接使用
17)觀察者模式(Observer Pattern)
- 訂閱號抽象類里訂閱者抽象列表,及add/Remove方法
18)中介者模式(Mediator Pattern)
- 打牌:對牌友中介進行抽象,中介抽象構造參數為兩個牌友抽象.
- 牌友變錢方法的參數為中介抽象及對應的參數.
- 和22訪問者模式有點像.
19)狀態者模式(State Pattern)
- 賬戶:狀態類構造參數為公共參數及父類,狀態類內切換父類的State抽象對象
20)策略者模式(Stragety Pattern)
- 稅:主體構造或方法以策略接口為參數,List<T>.Sort(IComparer<T>)
21職責鏈模式(Chain of Responsibility Pattern)
- 審核:處理器Handler抽象Approver有NextApprover屬性和ProcessRequest(Request request)
22)訪問者模式(Vistor Pattern)
- ==訪問者抽象==依賴并訪問visitor(MedicineA a)==訪問對象==
- ==訪問抽象==邀請accept(Visitor visitor)==訪問者抽象==
23)備忘錄模式(Memento Pattern)
- 電話薄:需要備忘的對象提供產生復本及復本恢復的兩個方法.