1. 定義
將抽象部分與實(shí)現(xiàn)部分解耦有巧,使他們都可以獨(dú)立的進(jìn)行變化
又稱橋梁模式渡冻,柄體模式
2. 使用場(chǎng)景:
任何多維度變化類或者多個(gè)樹狀類之間的耦合都可以使用橋接模式來實(shí)現(xiàn)解耦
需要在抽象化角色與具體化角色間增加更多靈活性,避免建立靜態(tài)的繼承聯(lián)系
不希望使用繼承或由于多層次繼承導(dǎo)致系統(tǒng)類的個(gè)數(shù)急劇增加時(shí)
一個(gè)類存在兩個(gè)獨(dú)立變化的維度,且這兩個(gè)維度都需要進(jìn)行擴(kuò)展
3. 優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
抽象和實(shí)現(xiàn)的分離
優(yōu)秀的擴(kuò)展能力
實(shí)現(xiàn)細(xì)節(jié)對(duì)客戶透明
缺點(diǎn):橋接模式的引入會(huì)增加系統(tǒng)的理解與設(shè)計(jì)難度,由于聚合關(guān)聯(lián)關(guān)系建立在抽象層酝惧,要求開發(fā)者針對(duì)抽象進(jìn)行設(shè)計(jì)與編程
4. Android源碼中的使用:
CheckBox,Button,TextView,等View的繪制都是由與View相關(guān)的功能實(shí)現(xiàn)類DisplayList,HardwareLayer,Canvas負(fù)責(zé)
Adapter和AdapterView(AbsListView的父類)
Window和WindowManager
5. 實(shí)例演示
以咖啡大小杯和口味為例,不管是Coffee變化(大小杯)焕梅,還是風(fēng)味變化(CoffeeAdditives)输吏,其相對(duì)于對(duì)方而言都是獨(dú)立的物舒,兩者唯一的聯(lián)系就是Coffee中保持對(duì)coffeeAdditives的引用色洞,為二者間的紐帶,這就是橋接模式
1. 創(chuàng)建一個(gè)咖啡調(diào)味劑的抽象類
2. 調(diào)味劑的實(shí)現(xiàn)類冠胯,如原味火诸,奶香,焦糖等
3. 創(chuàng)建咖啡的抽象類
4. 咖啡的實(shí)現(xiàn)類荠察,大杯中杯小杯等
5. 創(chuàng)建不同風(fēng)味置蜀,不同大小的咖啡
?我是今陽,如果想要進(jìn)階和了解更多的干貨悉盆,歡迎關(guān)注公眾號(hào)”今陽說“接收我的最新文章