一、對象創建模式
通過“對象創建”模式繞開“new”, 避免對象使用new創建過程中造成得緊耦合。?
1.? Factory Method
1) 用于隔離類對象的使用者和具體類型之間的耦合關系, 面對一個經常變化的具體類型,緊耦合關系(new)會導致軟件脆弱。
2)將創建對象的動作延遲到子類, 從而實現擴展的策略,較好的解決了這種緊耦合關系
3) 只能解決單個對象的需求變化, 缺點在于要求創建方法參數相同。
2. Abstract Factory
1) 應對多系列對象構建;
2)系列對象是指在某一特定系列下對象之間互相依賴或者作用的關系, 不同系列對象之間沒有依賴關系;?
3)只能應對新系列變化不能應對新對象變化。
3. Prototype
1)采用克隆的方法來完成對象創建;
2)可以利用某些框架實現深拷貝;
4. Builder
1)分步構建一個復雜對象, 分步驟是穩定的, 各個部分經常變化
2)C++構造器不可以調用虛函數, C#可以使得實現有所不同;
二、接口隔離模式
1. Facade
1)為子系統的一組接口提供一致的界面;
2)內部組件耦合關系較大, 不是簡單的集合;
2. Proxy
1)為其他對象訪問這個對象提供代理;
2)Proxy不一定要保持接口完整的一致性, 只要能實現間接控制, 有時損及一些透明性是可以接受的。?
3.Adapter
1)將一個類接口轉換成客戶希望的另一個接口。?
2)復用現存的類, 接口與復用環境不一致
4、Mediator
1) 將多個對象間復雜度的關聯關系解耦,將多個對象間控制關系進行集中管理
2)與Facade模式解耦系統間的對象關聯關系, Mediator模式是解耦系統內各個對象間之間的關聯關系。