iOS 設計模式淺析 2 - 橋接

MixReality發表於2017-12-25

本篇文章主要講三個點:

      1. 什麼是橋接模式.

      2. 橋接模式的優缺點.

      3. demo.

1. 橋接模式

      將抽象部分和實現部分分離, 使他們都可以獨立的變化.

      橋接模式的原理: 抽象層和實現層相分離, 抽象層定義了供我們使用的抽象介面, 實現層提供了具體的邏輯, 實現類的引用被封裝到了抽象層的例項之中, 即完成了橋接模式.

              iOS 設計模式淺析 2 - 橋接

2. 橋接模式的優缺點

優點: 

      ①. 將依賴具體的實現, 改為依賴抽象的實現, 達到解耦合的目的.

      ②. 分離介面和實現部分.

      ③. 提高了擴充套件性.

缺點: 

      會增加系統的理解與設計難度, 由於聚合關係建立在抽象層, 要求開發者針對抽象進行設計與程式設計.

3. demo

      正常情況下, 都是一把鑰匙開一把鎖, 但是有些需求是要用一個萬能鑰匙給所有鎖都開啟, 先看一下 demo 的 UML 原理圖:

   iOS 設計模式淺析 2 - 橋接

      想要用萬能鑰匙開奧迪和寶馬, 先看一下汽車的抽象類, 裡面就只有一個抽象方法:

                      iOS 設計模式淺析 2 - 橋接

                      iOS 設計模式淺析 2 - 橋接

      鑰匙抽象類聚合了 Car 類, 並且有兩個抽象方法:

                   iOS 設計模式淺析 2 - 橋接

      萬能鑰匙繼承自鑰匙抽象類, 並且實現了抽象方法:

                           iOS 設計模式淺析 2 - 橋接

      FirstCtrl 裡面進行了對萬能鑰匙的呼叫, 實際上萬能鑰匙只是改變了汽車的種類, 就像是我們用的萬能遙控器, 只是改變要配對的裝置, 其餘操作相同, 原理其實就是利用了多型啦.

                    iOS 設計模式淺析 2 - 橋接

      橋接模式的應用場景還是蠻多的, 發現有個大佬寫橋接模式寫的蠻好的, 放一個傳送門, 我也是處在一個學習階段, 所以有些觀點可能偏淺, 有什麼不足之處還望見諒.

這裡是 demo 的 傳送門, 如果喜歡的話, 大家可以為這篇文章點個 ❤️, 加個關注呦!


相關文章