在現實生活中,經常出現兩個物件因介面不相容而不能在一起工作的例項,這時需要第三者進行適配。例如,講中文的人同講英文的人對話時需要乙個翻譯,用直流電的膝上型電腦接交流電源時需要乙個電源介面卡,用計算機訪問照相機的 sd 記憶體卡時需要乙個讀卡器等。
在軟體設計中也可能出現:需要開發的具有某種業務功能的元件在現有的元件庫中已經存在,但它們與當前系統的介面規範不相容,如果重新開發這些元件成本又很高,這時用介面卡模式能很好地解決這些問題。
介面卡模式(adapter)的定義如下:將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。介面卡模式分為類結構型模式和物件結構型模式兩種,前者類之間的耦合度比後者高,且要求程式設計師了解現有元件庫中的相關元件的內部結構,所以應用相對較少些。
該模式的主要優點如下。
其缺點是:對類介面卡來說,更換介面卡的實現過程比較複雜。
package adapter;
/** * 被適配的類
* * @author shaw
* @date 2020/4/19 17:22
*/class adaptee
}
package adapter;
/** * @author shaw
* @date 2020/4/19 17:24
*/public inte***ce itarget
package adapter;
/** * 介面卡模式(類適配模式)
* * @author shaw
* @date 2020/4/19 17:26
*/public class adapter extends adaptee implements itarget
}
package adapter;
import lombok.allargsconstructor;
/** * 介面卡模式(使用組合方式跟適配物件整合)
* * @author shaw
* @date 2020/4/19 17:31
*/@allargsconstructor
public class adapter2 implements itarget
}
package adapter;
/** * 客戶端類
介面卡模式(adapter)通常適用於以下場景。
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 public inte ce usb public inte ce psp public class usber implements usb 類介面卡 psp適用usb介面 public class usbadapter extends usber implements psp 物...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...