橋接模式不是將兩個不相干的類鏈接,而是將一個需要多維度變化的類拆分成抽象部分和實現部分,并且在抽象層對兩者做組合關聯,是用組合的方式來解決繼承的問題。
舉個例子,如果一個類在兩個維度分別有m和n種變化,采用繼承的方式就需要擴展出m*n個子類,且一個維度每增加一種變化就多出另一個維度變化總數的子類;如果將兩個維度拆分再組合,加起來也只有m+n個子類,且每個維度獨立擴展,一個維度增加一種變化只需要增加1個子類
將倆個維度分離,使他們可以獨立變化。又稱為柄體(Handle and Body)模式或者接口(interface)模式。
結構圖
角色與理解
- 橋接模式包含如下角色:
- Abstraction (抽象類):用于定義抽象類的接口,一般為抽象類而不是接口,其中維持一個Implementor的引用
- RefinedAbstraction (擴充抽象類):繼承或者實現抽象類,通常情況下為具體類而不是抽象類,實現抽象類中定義的抽象業務方法,在具體業務方法中可以調用Implementor中定義的業務方法
- Implementor (實現類接口):定義實現類的接口,一般而言,Implementor接口僅提供基本操作,并交由子類去實現
- ConcreteImplementor (具體實現類):實現Implementor中定義的基本操作方法
- 抽象類持有實現類接口的對象,調用實現類接口中定義的方法
- 本質上是兩個獨立變化的維度,一個抽象層引用另一個抽象層的東西,以實現通過實現類進行業務方法的調用
核心代碼
- 抽象類
- 實現接口
- 客戶端
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
橋接器
+關注
關注
0文章
78瀏覽量
45363
發布評論請先 登錄
相關推薦
關于橋接模式遇到的問題
VMware使用橋接模式,已經手動設置ip地址和主機ip同一網段,但是ifconfig顯示的ip地址卻和vmnet8(NAT)同一網段?怎么解決?
發表于 10-16 15:06
優化電動汽車的結構性能
優化電動汽車的結構性能以提高效率和安全性迅速增長的全球電動汽車(EV)市場預計到2027年將達到8028億美元。在電池和高壓電子設備的驅動下,電動汽車的運行和維護成本往往低于傳統汽車,幾乎不會產生
發表于 09-17 08:10
設計模式之結構型模式
的接口功能。(二)應用實例:讀卡器是作為內存卡和筆記本之間的適配器。您將內存卡插入讀卡器,再將讀卡器插入筆記本,這樣就可以通過筆記本來讀取內存卡。(三)構成要素:二、橋接模式(一)定義:橋
發表于 11-06 17:51
?1次下載
橋接模式應用場景
1、什么是橋接模式? Decouple an abstraction from its implementation so that the two can vary independently.
評論