橋接模式簡談
阿新 • • 發佈:2018-12-16
圖解橋接模式
包含的角色
Abstraction:抽象類
RefinedAbstraction:擴充抽象類
Implementor:實現類介面
ConcreteImplementor:具體實現類
優缺點
優點:
抽象和實現的分離;
優秀的擴充套件能力;
實現細節對客戶透明;
缺點:
橋接模式的引入會增加系統的理解與設計難度,由於聚合關聯關係建立在抽象層,要求開發者針對抽象進行設計與程式設計;
目的
將抽象化與實現化脫耦,使得兩者可以獨立的變化
經典應用
1、豬八戒從天蓬元帥轉世投胎到豬,轉世投胎的機制將塵世劃分為兩個等級,即:靈魂和肉體,前者相當於抽象化,後者相當於實現化。生靈通過功能的委派,呼叫肉體物件的功能,使得生靈可以動態地選擇。
2、牆上的開關,可以看到的開關是抽象的,不用管裡面具體怎麼實現的。
總結
使用場景一般滿足的條件:
1)如果一個系統需要在構件的抽象化角色和具體化角色之間增加更多的靈活性,避免在兩個層次之間建立靜態的繼承聯絡,通過橋接模式可以使它們在抽象層建立一個關聯關係。
2)對於那些不希望使用繼承或因為多層次繼承導致系統類的個數急劇增加的系統,橋接模式尤為適用。
3)一個類存在兩個獨立變化的維度,且這兩個維度都需要進行擴充套件。