## 一、橋接模式
將抽象部分與它的實現部分分離,使他們都可以獨立的變化。
什么叫抽象與它的是實現分離呢?
其實這并不是說,讓抽象類與其派生類分離,這樣也沒有意義;實現指的是抽象類和它的派生類用來實現自己的對象。
像手機品牌和手機軟件的關系。我們可以按手機品牌來分類,

同時,還可以按照手機軟件來給軟件分類。

現在我們要是想增加三個手機品牌應該怎么辦?
用第一幅圖來說,我們需要在第二層增加三個類,再在第三層增加留個類;如果是第二種分法,需要再第三層加六個類。
或者說要增加三個軟件,又該怎么辦?
這時候的情況原理同上。
那我要是既增加手機軟件,又增加手機品牌呢????
這樣,兩種分法,做出調整都是一個巨大的工程,關鍵是我們這樣修改還違背了軟件模式設計原則:開發封閉原則。
不管我們是增加手機,還是手機軟件,都會影響到彼此,所以為了解決這種情況,我們采用了一種設計模式——橋接模式。
在說橋接模式前,先說一個原則:合成/聚合復用原則。
**合成/**聚合復用原則**:盡量使用合成/聚合,不要使用繼承。優先使用對象的合成/聚合將有助于你保持每個類被封裝,并被集中在單個任務上,這樣類和類繼承層次會保持較小規模,并且不太可能增長為不可控制的龐然大物。
遇到類似這種多種分類方式的情況下,我們不要一味的依賴繼承,這樣會繼承越多,我們就把多種分類方式分別寫出來,然后根據“合成/聚合復用”的原則對父類進行連接。這樣,在修改各自類的時候不會干擾的彼此,各自的類都有了良好的封裝和擴展。
**結構圖如下:**

## 二、類圖如下:

注意:類圖中的Abstraction是一個抽象的抽象類,Implementor是具體的實現類。橋接模式運用合成/聚合復用的原則把抽象和實現分開來表示,而不是使用繼承,把層次累積成龐然大物。
- 前言
- 抽象工廠——創建型設計模式一
- 工廠三姐妹——創建型設計模式之二
- 初識面向對象設計模式
- 建造者模式——創建型模式之三
- 原型模式——創建型設計模式四
- 適配器 and 組合模式——結構性模式之一
- 橋接模式——結構性設計模式之二
- 組合模式——結構型設計模式之三
- 裝飾模式——結構型設計模式之四
- 外觀模式——結構型設計模式之五
- 代理模式——結構型設計模式之六
- 觀察者模式——行為型設計模式之五
- 模板設計——行為設計模式之一
- 命令模式——行為設計模式之二
- 狀態模式——行為型設計模式之三
- 職責模式——行為設計模式之四
- 中介模式——行為模式之六
- 策略+簡單工廠 實戰篇
- 看觀察者怎么全方位觀察機房收費系統
- 登陸也需要裝飾——機房收費系統裝飾模式實戰
- 何為抽象?你有本末倒置嗎?
- 再回首,策略、簡單工廠是否依然?
- 再回首——行為型設計模式