1. 程式人生 > 其它 >設計模式 橋接模式

設計模式 橋接模式

橋接模式(Bridge Pattern):將抽象部分與它的實現部分分離,使他們可以獨立地變化。橋接模式是一種物件結構型模式,又稱柄體模式(Handle and Body)模式或介面模式(Interface)

模式動機:

  現需要繪製矩形、原型、橢圓、長方形、正方形,繪製的圖形需要有紅色、綠色、藍色等,此時有兩種設計方案。第一種為每一種形狀竇提供一套各種顏色的版本。第二種根據實際需要對形狀和顏色進行組合。

  對於有兩個變化維度(兩個變化的因素)的系統,採用橋接模式來進行設計系統中類的個數更少,且系統擴充套件更為方便。橋接模式將繼承關係轉換為關聯關係,從而降低類與類之間的耦合,減少程式碼編寫量。

模式結構:

  • Abstraction:抽象類
  • RefinedAbstraction:擴充抽象類
  • Implementor:實現類介面
  • ConcreteImplementor:具體實現類

具體類圖:

                  

  類圖解析:Pen為抽象類,不同型號的鉛筆繼承Pen。Pen中有物件屬性color,Color是一個介面,各種不同的具體顏色分別實現了這個介面。

  流程解析:客戶端知曉毛筆的型號和顏色,通過Pen和Color獲取具體型號的毛筆以及具體的顏色,具體型號的毛筆中有顏色這個屬性,將已獲知的顏色賦予這個屬性即可得到具體顏色、型號的毛筆。

橋接模式的優點:

  • 分離抽象介面及其實現部分
  • 橋接模式類似於多繼承方案
  • 提高了系統的可擴充套件性
  • 實現細節對客戶透明,可以對使用者隱藏實現細節

缺點:

  • 增加系統的理解與設計難度
  • 需要正確的識別出系統的兩個獨立的變化維度,因此使其適用範圍具有一定的侷限性