(一)意圖——將抽象部分和它的實現部分分離,使它們都可以獨立地變化。
適用於從多維度描述的型別,拆解開來,使其能沿著各維度獨立變化。脫耦。
(二)動機——解決繼承機制帶來的不足。
1)擴充套件抽象不方便。擴充套件時要重新定義乙個新的類。
2)繼承機制使得客戶**需要重新編譯。
為解決以上兩個問題,使用橋接的方式使得抽象類和它的實現分離,使得它們可以按照自己的方式獨立變化。
(三)結構——抽象和實現分離。
以下是橋接模式的示意圖:
(四)優點
1)分離介面及其實現部分。將abstraction和implementor分離有助於降低對實現部分編譯時刻的依賴性,當改變乙個實現類時,並不需要重新編譯abstraction 和它的客戶程式,保證了乙個類庫的不同版本之間的二進位制相容性;介面和實現分離有助於分層,產生更好的結構化系統——抽象化層和實現層,系統的高層只要知道abstraction 和implementor
即可。2)提高可擴充性。可以獨立對implementor 和abstraction 進行擴充。
3)實現細節對客戶透明。可以對客戶隱藏實現細節,例如共享implementor 物件以及相應的引用技術機制。
(五)補充。
1)有乙個以上構件時使用橋梁模式比較好。
2)建立正確的實現物件。預設實現物件;**實現物件。
(六)參考。
《程式設計師面試寶典》p246 ——設計模式的思想描述蠟筆和毛筆的不同。
BRIDGE(橋接) 物件結構型模式
如下 先定義乙個software介面 public inte ce software再寫它的兩個子類 public class game implements software public class read implements software 接著開始新增乙個抽象類mobile publi...
Bridge(橋接) 物件結構型模式
1.意圖 將抽象部分與它的實現部分分離,使它們都可以獨立地變化。2.動機 在抽象類與它的實現之間起到橋梁作用,使它們可以獨立地變化。3.適用性 4.結構 5.例項 include class abstactionimpl class abstration class redefinedabstrat...
設計模式八 bridge(橋接) 物件結構型模式
bridge 橋接 物件結構型模式 1.意圖 將抽象部分與它的實現部分分離,使他們都可以獨立的變化 2.別名 handle body 3.動機 當乙個抽象可以有多個實現時,通常用繼承來協調他們。抽象類定義對該抽象的介面,而具體的子類則用不同方式加以實現。但是此方法有時候不夠靈活,繼承機制將抽象部分和...