在軟體開發中採用類似於電源介面卡的設計和編碼技巧被稱為介面卡模式,通常情況下,客戶端可以通過目標類的介面訪問它所提供的服務。有時現有的類可以滿足客戶類的功能需要,但是它所提供的介面不一定是客戶類所期望的,這可能是因為現有類中方法名與目標類中定義的方法名不一致等原因所導致的。在這種情況下,現有的介面需要轉化為客戶類期望的介面,這樣保證了對現有類的重用,如果不進行這樣的轉化,客戶類就不能利用現有類所提供的功能,介面卡模式可以完成這樣的轉化。在介面卡模式中可以定義乙個包裝類,包裝不相容介面的物件,這個包裝類指的就是介面卡adapter
,它所包裝的物件就是適配者adaptee
,即被適配的類。介面卡提供客戶類需要的介面,介面卡的實現就是把客戶類的請求轉化為對適配者的相應介面的呼叫。也就是說,當客戶類呼叫介面卡的方法時,在介面卡類的內部將呼叫適配者類的方法,而這個過程對客戶類是透明的,客戶類並不直接訪問適配者類。因此介面卡可以使由於介面不相容而不能互動的類可以一起工作。
class
target
}class
adaptee
}class
adapter
extends
target
say()}
(function()
)();
/** 乙個例子
原有乙個非常類似jquery的輕量框架要轉用jquery,需要適配介面,假如只有通過id取得元素的方法需要適配
class target
}var adaptee = $; // 此處adaptee即jquery
class adapter extends target
getelement(id) `);}}
// 之前是使用 target 物件的例項 target
// 適配之後使用 adapter 物件的例項 adapter 並可以將 target 指向 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...