你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> IOS設計模式學習(8)適配器

IOS設計模式學習(8)適配器

編輯:IOS開發綜合

1 前言
在面向對象軟件設計中,有時候我們想把有用而經過精心測試的類,用於應用程序的其他新領域。但是,新功能需要新接口,而新接口與要復用的現有類不一致的情況非常普遍。我們不想為新的接口而重寫可靠的類。

已有的類與新的接口之間不兼容的問題相當普遍,人們已為它找到了一個解決方案。這個解決方案廣為使用,最終被編入設計模式,成為適配器。

2 詳述
2.1 簡述
適配器用於連接兩種不同類型的對象,使其毫無問題地協同工作。有時它也稱為“包裝器”(wrapper)。適配器的主要作用是把被適配者的行為傳遞給管道另一端的客戶端。


適配器模式:將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能在一起工作的哪些類可以一起工作。

2.2 種類
(1)第一種是通過繼承來適配兩個接口,成為類適配器。要在Objective-C中實現類適配器,首先需要有定義了客戶端要使用的一套行為的協議,然後要用具體的適配器來實現這個協議。適配器類同時也要繼承被適配者。

(2)第二種是對象適配器。對象適配器不繼承被適配者,而是組合了一個對它的引用。適配者與被適配者之間的關系從“屬於”變成了“包含”。這種關系下,適配者保持一個對被適配者的引用。

2.3 類適配器與對象適配器的區別
(1)類適配器只針對單一的具體被適配者,把被適配者是配到目標接口;對象適配器可以適配多個被適配者及其子類。

(2)類適配器易於重載被適配者的行為,因為是通過直接的子類化進行的適配;對象適配器難以重載被適配者的行為,需要借助與子類的對象而不是被適配者本身。

(3)類適配器只有一個適配者對象,無需額外的指針間接訪問被適配者;需要額外的指針以間接訪問被適配者並適配其行為。

2.4 何時使用適配器模式
(1)已有的接口與需求不匹配;

(2)想要一個可復用的類,該類能夠同可能帶有不兼容接口的其他類協作;

(3)需要適配一個類的幾個不同子類,可是讓每一個子類去子類化一個類適配器又不現實。

2.5 委托與適配器關系
適配器模式:把類的接口變換成客戶端需要的接口。這裡的客戶端他們是什麼呢?是Cocoa Touch框架中的類。那麼此處什麼是Target(目標接口)呢?是一個委托協議。實現協議的具體類會是個適配器。那麼什麼是與框架不匹配需要適配的類呢?應用程序中的其他類。現在明白了為何委托模式其實是適配器模式。

我們之所以說委托模式主要是適配器模式,是因為委托機制可以實現某些其他設計模式的意圖,比如裝飾模式。委托模式的實現有時會跟其他設計模式混在一起。

3 結語
以上是所有內容,希望對大家有所幫助。

 

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved