介面卡模式:將乙個類的介面轉換成客戶客戶希望的另乙個介面。介面卡模式使得原本由於介面不能相容而不能在一起工作的那些類可以在一起工作
介面卡模式的主要功能是進行轉換匹配,目的是復用已有的功能,而不是來實現新介面。也就是說,客戶端需要的功能應該是已經實現好了的,不需要介面卡模式來實現,介面卡模式主要負責把不相容的介面轉換成客戶端期望的樣子就可以了。
package pattern.adapter;
/** * 已存在的介面,這個介面需要被適配
* @author administrator
* */
public class adatpee
}----
package pattern.adapter;
/** * 定義客戶端使用的介面,與特定領域相關
* @author administrator
* */
public inte***ce target
----
package pattern.adapter;
/** * 介面卡
* @author administrator
* */
public class adaper implements target
@override
public void request()
}----
package pattern.adapter;
public class client
}
物件組合
根據前面的實現,你會發現,介面卡實現的方式其實是依靠物件組合的方式。通過給介面卡物件組合被適配的物件,然後當客戶端呼叫target的時候,介面卡會把相應的功能委託給被適配的物件去完成。
呼叫順序
介面卡模式的優缺點:
1、更好的復用性
如果功能是已經有了的,只是介面不相容,那麼通過介面卡模式就可以讓這些功能得到更好的復用
2、更好的可擴充套件性
在實現介面卡功能的時候,可以呼叫自己開發的功能,從而自然地擴充套件系統的功能
缺點過多的使用介面卡模式,會讓系統非常凌亂,不容易整體進行把握
比如,明明看到呼叫的是a介面,其實內部被適配成了b介面來實現,乙個系統如果出現太多這種情況,無異於異常災難,因此如果不是很有必要,可以不使用介面卡模式,而是直接對系統進行重構
何時選用介面卡模式
1、如果你想要使用乙個已經存在的類,但是它的介面不符合你的需求,這種情況可以使用介面卡模式,來把已有的實現轉換成你需要的介面。
2、如果你想建立乙個可復用的類,這個類可能和一些不相容的類一起工作,這種情況可以使用介面卡模式,到時候需要什麼適配什麼。
介面卡模式(結構型)
介面卡模式的定義 將乙個類的介面轉換成客戶希望的另外乙個介面,介面卡模式使得原本因為介面不相容而不能一起工作的那些類可以一起工作。介面卡模式的本質 轉換匹配 復用功能 介面卡模式的類別 類介面卡 物件介面卡 public inte ce target 介面卡 吧adaptee適配成客戶端需要的tar...
介面卡模式(結構型)
介面卡模式 將乙個類的介面,轉換成客戶期望的另乙個介面。介面卡讓原本介面不相容的類可以合作無間。介面卡模式類圖 良好的體現了oo設計原則 組合 看下面示例來進行理解 介面卡模式示例 鴨子介面卡實現了鴨子介面 被客戶端呼叫的介面 通過組合的方式,使用被適配物件 火雞 的的引用,將client對鴨子介面...
結構型模式 介面卡
結構圖 模式說明 擴充套件點在adaptee類,adaptee可以被其他類替換。客戶端需要知道哪個具體的adapter負責將adaptee轉換成需要的target介面。客戶端不關心具體哪個adaptee被適配和轉換的。將乙個類的介面轉換成客戶希望的另乙個介面,介面卡模式使得原本由於介面不相容而不能一...