橋接(Bridge)編程
我的理解:實體類的功能獨立於接口實現類。設計
意圖:將抽象部分與實現部分分離,使它們均可以獨立的變化。繼承
主要解決:在有多種可能會變化的狀況下,用繼承會形成類爆炸問題,擴展起來不靈活。接口
什麼時候使用:實現系統可能有多個角度分類,每一種角度均可能變化。開發
如何解決:把這種多角度分類分離出來,讓它們獨立變化,減小它們之間耦合。擴展
優勢: 一、抽象和實現的分離。 二、優秀的擴展能力。 三、實現細節對客戶透明。開發者
缺點:橋接模式的引入會增長系統的理解與設計難度,因爲聚合關聯關係創建在抽象層,要求開發者針對抽象進行設計與編程。系統
使用場景: 一、若是一個系統須要在構件的抽象化角色和具體化角色之間增長更多的靈活性,避免在兩個層次之間創建靜態的繼承聯繫,經過橋接模式可使它們在抽象層創建一個關聯關係。 二、對於那些不但願使用繼承或由於多層次繼承致使系統類的個數急劇增長的系統,橋接模式尤其適用。 三、一個類存在兩個獨立變化的維度,且這兩個維度都須要進行擴展。
注意事項:對於兩個獨立變化的維度,使用橋接模式再適合不過了。