什麼是介面卡模式呢?
將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的類可以一起工作。
其實簡單來說就是給兩個無法結合的類用乙個介面卡讓其結合起來。
① 生活中的介面卡:我們用擴充套件屏的時候,電腦是html介面的,而顯示屏是vga介面的那麼就需要用到介面卡了。
② 軟體開發中的介面卡:當系統資料和行為都正確,但是介面不符時,我們就考慮用介面卡,目的是讓控制範圍之外的乙個原有物件與某個介面匹配。
什麼時候使用介面卡模式呢?
1、系統需要使用現有的類,但是那些類的介面不符合系統的需要
2、需要乙個統一的輸出介面,而輸入端的型別不可預知。
介面卡的分類
① 類介面卡:
從類圖中就可以看出,需要多重繼承,但是c#是不能繼承多重繼承的。所以不再過多介紹。
② 物件介面卡:我們可以把上面說得那個html介面和vga直接轉換成物件介面卡。
先來看一下類圖:
裡面的**實現:
使用者電腦的介面,電腦所期待的介面
class html//使用者電腦的介面,也就是使用者期待的介面
}
顯示器的介面,需要被適配的
class vga//顯示器的介面,也就是需要適配的介面
}
介面卡類
class adaper:html//介面卡,繼承使用者期待的介面
}
客戶端
html html = new adaper()
;//例項化乙個電腦介面為適配物件
html.
computerinte***ce()
;//呼叫電腦介面的時候轉換為vga的,方便與vga連線
console.
readkey()
;
類介面卡優缺點
優點 :
1、可以在不修改**的基礎上來復用現有類,符合「開放-封閉原則」。
2、可以重新定義被適配的類的部分行為,因為介面卡是被適配的類的子類
3、僅僅需要引用乙個物件,而不需要額外的字段來引用被適配的類的例項
缺點 :
1、如果想要適配乙個類和他的所有子類的時候,介面卡將無法完成
2、採用了「多繼承」,高耦合
物件介面卡優缺點
優點 :
1、可以在不修改**的基礎上來復用現有類,符合「開放-封閉原則」。
2、採用「物件組合」,松耦合
缺點 :
重新定義被適配的類的行為比較困難。
介面卡模式(類介面卡 物件介面卡)
做個筆記 引用 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...