一模式定義
橋接模式,也稱橋梁模式,在軟件系統(tǒng)中,由于自身的邏輯,具有兩個或多個維度的變化,如何應(yīng)對這種多維度的變化,橋接模式使得軟件系統(tǒng)能夠輕松地沿著多個方向進(jìn)行變化,而又不引入額外的復(fù)雜度。
橋接模式三個關(guān)鍵詞為:抽象化,實現(xiàn)化,脫耦
二模式舉例
1 橋接模式分析方法
我們借用電燈照明來說明該模式。
不使用繼承,使用對象組合的方式,將開關(guān)和電燈的強關(guān)聯(lián)關(guān)系變成弱關(guān)聯(lián)關(guān)系。
2橋接模式靜態(tài)類模型
3代碼示例
3.1創(chuàng)建電燈接口
3.2創(chuàng)建一般開關(guān)
3.3創(chuàng)建遙控開關(guān)
3.4白熾燈實現(xiàn)
3.5水晶燈實現(xiàn)
3.6一般開關(guān)控制白熾燈,遙控開關(guān)控制水晶燈
運行結(jié)果:
-- 一般開關(guān) --
白熾燈被打開了...
白熾燈照明!
白熾燈被關(guān)閉了...
-- 遙控開關(guān) --
水晶燈被打開了...
水晶燈照明!
...現(xiàn)在是暖色!
水晶燈被關(guān)閉了...
3.7一般開關(guān)控制水晶燈,遙控開關(guān)控制白熾燈
運行結(jié)果
-- 一般開關(guān) --
水晶燈被打開了...
水晶燈照明!
水晶燈被關(guān)閉了...
-- 遙控開關(guān) --
白熾燈被打開了...
白熾燈照明!
...現(xiàn)在是暖色!
白熾燈被關(guān)閉了...
三設(shè)計原則
1 盡量使用對象聚合弱關(guān)聯(lián),避免使用繼承強關(guān)聯(lián)。
2 抽象化和實現(xiàn)化脫耦。
四使用場合
1不希望在抽象類和實現(xiàn)部分之間有一個固定的綁定關(guān)系
2類的抽象及實現(xiàn)部分都應(yīng)該可以通過孑類的方法加以擴充
3對一個抽象的實現(xiàn)部分的修改對客戶不產(chǎn)生影響,即客戶代碼不必重新編譯
五橋接模式靜態(tài)類圖
聯(lián)系客服