設計模式 橋接模式
阿新 • • 發佈:2021-11-29
橋接模式(Bridge Pattern):將抽象部分與它的實現部分分離,使他們可以獨立地變化。橋接模式是一種物件結構型模式,又稱柄體模式(Handle and Body)模式或介面模式(Interface)
模式動機:
現需要繪製矩形、原型、橢圓、長方形、正方形,繪製的圖形需要有紅色、綠色、藍色等,此時有兩種設計方案。第一種為每一種形狀竇提供一套各種顏色的版本。第二種根據實際需要對形狀和顏色進行組合。
對於有兩個變化維度(兩個變化的因素)的系統,採用橋接模式來進行設計系統中類的個數更少,且系統擴充套件更為方便。橋接模式將繼承關係轉換為關聯關係,從而降低類與類之間的耦合,減少程式碼編寫量。
模式結構:
- Abstraction:抽象類
- RefinedAbstraction:擴充抽象類
- Implementor:實現類介面
- ConcreteImplementor:具體實現類
具體類圖:
類圖解析:Pen為抽象類,不同型號的鉛筆繼承Pen。Pen中有物件屬性color,Color是一個介面,各種不同的具體顏色分別實現了這個介面。
流程解析:客戶端知曉毛筆的型號和顏色,通過Pen和Color獲取具體型號的毛筆以及具體的顏色,具體型號的毛筆中有顏色這個屬性,將已獲知的顏色賦予這個屬性即可得到具體顏色、型號的毛筆。
橋接模式的優點:
- 分離抽象介面及其實現部分
- 橋接模式類似於多繼承方案
- 提高了系統的可擴充套件性
- 實現細節對客戶透明,可以對使用者隱藏實現細節
缺點:
- 增加系統的理解與設計難度
- 需要正確的識別出系統的兩個獨立的變化維度,因此使其適用範圍具有一定的侷限性