介面卡模式

2021-08-30 03:44:32 字數 1959 閱讀 4895

介面卡模式通俗的說是將兩個聯絡不密切的類或類與介面通過另乙個類做為紐帶將兩個類或類與介面聯絡起來。

舉個簡單的例子:中國製造的筆記本電源插孔可能是兩個的,而美國的電源都是三個插孔的,如何讓中國的筆記本在美國正常工作。我們就拿個介面卡在他們之間轉化一下,這樣就能正常工作了。就是把不適應的介面通過第三個紐帶讓他們適合,能正常通訊,這就是介面卡模式。

介面卡模式的宗旨就是,保留現有類所提供的服務,向客戶提供介面,以滿足客戶更多的期望。其中有類介面卡和物件介面卡。

1、類介面卡

所謂的類介面卡,就是在已經定義了客戶的希望實現功能的介面基礎上,利用已經存在的類來實現客戶需要的功能。這樣就可以通過繼承存在的類,並實現使用者介面來滿足使用者的期望。

客戶需要的新介面是wantenglishtochinses(string englsih);而原介面提供的類中的介面是englishtochinsese(string english),原先的介面已通過測試,要想使原先的類適應現在的,只需做乙個轉換就可以了,避免了重新寫類進行測試的工作。

**的實現

(1)客戶需要的新介面

/*** 介面:ienglishtochinese

* @return

*/public inte***ce ienglishtochinese

(2)原有的類中已經對該功能做了實現,但名字卻不一樣。

/*** 函式:englishtochinese

* 功能:該函式實現英譯漢的功能

* @return

*/public class englishtochinese

}(3) 採用介面卡類將兩個類連線起來發生關係

/*** 函式:englishtochineseadapter

* 功能:該函式繼承了englishtochinese函式,並實現ienglishtochinese的介面

* @return

*/public class englishtochineseadapter extends englishtochinese implements

ienglishtochinese

(4) main函式中呼叫介面實現功能

public static void main(string arg)

2、物件介面卡

物件介面卡在版本的更新和相容方面有著很重要的作用,客戶原先的類已經實現,但新版本同樣也有實現,為了做到版本的相容,把老版本的類視為target,新版本的類為adapteer,中間建立乙個adapter。

**如下:

(1)客戶需要的應用的類

/*** 類:englishtochinese *

* @return

*/public class englishtochinese

}(2)新版本類

/*** 函式:newenglishtochinese

* 功能:該函式實現英譯漢的功能

* @return

*/public class newenglishtochinese

}(3) 採用介面卡類將兩個類連線起來發生關係

/*** 函式:englishtochineseadapter

* 功能:該函式繼承了englishtochinese函式,並實現ienglishtochinese的介面

* @return

*/public class englishtochineseadapter extends englishtochinese

} (4) main函式中呼叫介面實現功能

public static void main(string arg)

3、總結

介面卡模式和外觀模式都包裹了一層,在實現上感覺很相似,但側重點卻不一樣。介面卡是將現有的類進行包裝以適應已定介面的需要,而外觀模式是內裡實現複雜,為了方便使用者的呼叫而通過介面方式掩蓋內裡實現,方便客戶或子系統的應用。

介面卡模式(類介面卡 物件介面卡)

做個筆記 引用 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...