最近一直在看設計模式方面的書,看完了第一部分接口型模式,下面是我的一些個人理解:
1. Adapter(適配器)模式
我的理解就是怎樣通過調用已經存在的方法來解決客戶給我們的問題,這里的調用已經存在的方法就是java中的復用代碼,可以通過組合和繼承來實現。換句話說,就是引用或者繼承現有的方法類來適配客戶提供來的問題接口。
2. Facade(外觀)模式
定位于內部組件和外部客戶程序之間,用于二者間的橋梁。中間類的建立主要面向外部客戶程序,為其提供功能接口,其方法體通過調用內部組件來實現。這樣不僅簡化了調用關系,還在一定程度上達到了“解耦”的效果。
3. Composite(組合)模式
主要解決客戶在處理單個對象和組合對象上的接口一致性。具體的解決方法就是使用將對象用“樹型結構”組織起來,以達成“部分-整體”的層次結構。通過遍歷(Iterator)整個樹型結構,獲取所有的對象。
4. Bridge(橋接)模式
進一步的將抽象化與實現化“解耦”。橋梁模式中的所謂脫耦,就是指在一個軟件系統的抽象化和實現化之間使用組合/聚合關系而不是繼承關系,從而使兩者可以相對獨立地變化。

抽象化角色(Abstraction)引用了實現化角色(Implementor)的接口,并且抽象了客戶的功能接口(面向客戶)。
實現化角色(Implementor)抽象出底層操作(面向底層)。