介面卡模式總的來說分為三種:類介面卡,物件介面卡,介面介面卡。這裡只總結兩種也是因為類介面卡很簡單並且物件介面卡就是在類介面卡上做改造因此懂得了物件介面卡,類介面卡一想就明白。
介面卡模式和生活中的充電線轉換頭很像,因此以此來當作例子會很容易明白。
介面卡就相當於一根安卓線要通過轉換頭去給蘋果手機充電。
接下來就是我自己手寫的充電**:
物件介面卡:
/**
* @author jay
* @date 2020/7/15 19:26
* @description:
* 安卓線
*/public
class
androidusb
}
/**
* @author jay
* @date 2020/7/15 19:30
* @description:
* iphone頭定義為介面
*/public
inte***ce
iphonehead
/**
* @author jay
* @date 2020/7/15 19:30
* @description:
* 轉換頭
*/public
class
usbadapter
extends
androidusb
implements
iphonehead
@override
public string chargeiphone()
//返回蘋果頭
return s;
}}
介面介面卡
修改增加了幾個類和介面
/**
* @author jay
* @date 2020/7/15 19:25
* @description:
*/public
inte***ce
usb
/**
* @author jay
* @date 2020/7/15 19:30
* @description:
* 轉換頭
*/public
class
usbadapter
implements
usb@override
public string chargeiphone()
@override
public string chargehuawei()
}
/**
* @author jay
* @date 2020/7/15 19:30
* @description:
*/public
class
iphonehead
extends
usbadapter
public string chargeiphone()
//返回蘋果頭
return s;
}}
/**
* @author jay
* @date 2020/7/15 20:34
* @description:
*/public
class
huaweihead
extends
usbadapter
public string chargehuawei()
//返回蘋果頭
return s;
}}
介面卡模式應用場景
類介面卡與物件介面卡的使用場景一致,僅僅是實現手段稍有區別,二者主要用於如下場景:
(1)想要使用乙個已經存在的類,但是它卻不符合現有的介面規範,導致無法直接去訪問,這時建立乙個介面卡就能間接去訪問這個類中的方法。
(2)我們有乙個類,想將其設計為可重用的類(可被多處訪問),我們可以建立介面卡來將這個類來適配其他沒有提供合適介面的類。
以上兩個場景其實就是從兩個角度來描述一類問題,那就是要訪問的方法不在合適的介面裡,乙個從介面出發(被訪問),乙個從訪問出發(主動訪問)。
介面介面卡使用場景:
(1)想要使用介面中的某個或某些方法,但是介面中有太多方法,我們要使用時必須實現介面並實現其中的所有方法,可以使用抽象類來實現介面,並不對方法進行實現(僅置空),然後我們再繼承這個抽象類來通過重寫想用的方法的方式來實現。這個抽象類就是介面卡。
總結:被適配類(source)的存在形式決定了介面卡的名字。類介面卡就是繼承source類,物件介面卡就是持有source類物件,介面介面卡是基於物件介面卡的改進。如果有90%的把握確定需要適配出來的介面只有一種或兩種不建議用這個方法了,建議使用物件介面卡,如果將來需要適配出來的介面更多,那麼用介面介面卡,選擇合適的就好了。
設計模式學習 介面卡模式
建立型模式學習完了,接下來學習的是結構性模式。結構型模式主要涉及到如何組合類和物件以獲得更大的結構,通常採用繼承機制來組合介面和實現。首先學習的是介面卡模式。首先是介面卡的定義 介面卡模式,將乙個類的介面轉換成客戶所希望的另外乙個介面。介面卡模式使得原來由於介面不相容而不能一起工作的類可以一起工作。...
設計模式學習 介面卡模式
介面卡在我們的生活中應用的十分廣泛,比如我們的筆記本電源,如果不用介面卡,那我們的筆記本將直接接入220v的交流電,出國的朋友肯定對三個插孔的轉換頭比較熟悉,這也是一種介面卡。顧名思義,介面卡模式 有時候也稱包裝樣式或者包裝 將乙個類的介面適配成使用者所期待的。乙個適配允許通常因為介面不相容而不能在...
介面卡模式 設計模式學習
介面卡模式 adapter 將乙個類的介面轉換成客戶希望的另外乙個介面。adapter模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。在軟體開發中,系統的資料行為都正確,但介面不符,我們應該考慮用介面卡,目的是使控制範圍之外的乙個原有物件與某個介面匹配。介面卡模式主要應用於希望復用一些...