Composite(組合)模式
意圖在與:讓用戶能夠使用統一的接口處理單個對象以及對象組合
理解:
Component類抽象出Leaf類和Composite類共享的公共接口,在Composite類中使用遞歸(iterator)定義關于對象組合的方法。
個人感覺:composite模式就是定義一個統一的接口既可以處理單個對象,又可以處理對象的組合。其中對組合對象的處理又不斷被細分到對其中所包含的單個對象的處理,(使用遞歸遍歷各個結點)。
Facade(外觀)模式
旨在提供一個接口,使子系統更加容易使用
Before Facade
Using Facade
Facade模式 與 Adapter模式
相似:為既存的類提供界面統一的接口,以供外部類調用
不同:Facade模式的目的是簡化調用關系
Adapter模式是為不同的模塊/子系統提供一個統一的接口(支持多態),旨在將一個或多個已經存在的不統一的接口轉化為另一個統一的接口
Adapter(適配器)模式
旨在保留現有類所提供的服務,向客戶提供接口,以滿足客戶的期望
即存在方法類,并可以提供給客戶的需求接口
理解1.類適配器
通過繼承得到已存方法類的方法使用權去實現所需的客戶接口
理解2.對象適配器
擴展一個客戶所需的目標類,并把它委派給一個現有的方法類去實現
區別:
類適配器是擴展一個現有的類,并實現一個目標接口
對象適配器是擴展一個目標類,并把它委派給一個現有的類