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

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