這里摘抄一份他處的概念,你可以不必理會,先看下面得講解與實(shí)例,然后返回來理解概念,不然抽象的概念會讓你崩潰...
橋接(Bridge)是用于把抽象化與實(shí)現(xiàn)化解耦,使得二者可以獨(dú)立變化。這種類型的設(shè)計(jì)模式屬于結(jié)構(gòu)型模式,它通過提供抽象化和實(shí)現(xiàn)化之間的橋接結(jié)構(gòu),來實(shí)現(xiàn)二者的解耦。
這種模式涉及到一個作為橋接的接口,使得實(shí)體類的功能獨(dú)立于接口實(shí)現(xiàn)類。這兩種類型的類可被結(jié)構(gòu)化改變而互不影響。
個人理解:橋接是一個接口,它與一方應(yīng)該是綁定的,也就是解耦的雙方中的一方必然是繼承這個接口的,這一方就是實(shí)現(xiàn)方,而另一方正是要與這一方解耦的抽象方,如果不采用橋接模式,一般我們的處理方式是直接使用繼承來實(shí)現(xiàn),這樣雙方之間處于強(qiáng)鏈接,類之間關(guān)聯(lián)性極強(qiáng),如要進(jìn)行擴(kuò)展,必然導(dǎo)致類結(jié)構(gòu)急劇膨脹。采用橋接模式,正是為了避免這一情況的發(fā)生,將一方與橋綁定,即實(shí)現(xiàn)橋接口,另一方在抽象類中調(diào)用橋接口(指向的實(shí)現(xiàn)類),這樣橋方可以通過實(shí)現(xiàn)橋接口進(jìn)行單方面擴(kuò)展,而另一方可以繼承抽象類而單方面擴(kuò)展,而之間的調(diào)用就從橋接口來作為突破口,不會受到雙方擴(kuò)展的任何影響。
下面的實(shí)例能真正體現(xiàn)著一點(diǎn):
實(shí)例準(zhǔn)備:我們假設(shè)有一座橋,橋左邊為A,橋右邊為B,A有A1,A2,A3等,表示橋左邊的三個不同地方,B有B1,B2,B3等,表示橋右邊的三個不同地方,假設(shè)我們要從橋左側(cè)A出發(fā)到橋的右側(cè)B,我們可以有多重方案,A1到B1,A1到B2,A1到B3,A2到B1...等等,以此為例,代碼如下:
橋接口:Qiao
1 public interface Qiao {2 //目的地B3 void targetAreaB();4 }
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26