大家所熟悉的是如果實現某乙個介面,必須實現介面中的每乙個方法。在介面卡模式中,如果目標(target)角色中的方法眾多,需要的僅僅幾個。但是根據介面的實現規則,其餘的方法也必須實現,這必然造成了很多的不便,最突出的就繁瑣。
這種情況下,可以考慮實現個預設介面卡,然後實際的實現目標角色介面的類可以整合這個預設介面卡,然後重寫預設實現的方法即可。
預設適配模式為乙個介面提供預設實現,這樣的型別可以從這個預設實現進行擴充套件,而不必從原有介面進行擴充套件。當原介面中定義的方法太多,而其中大部分又不被需要時,這種模式非常實用。由預設介面卡類直接實現目標(target)角色介面,並為所有方法提供預設的空實現。使用者類就只需要繼承介面卡類,只實現感興趣的方法就行了。
目標(target)角色:目標介面。可能定義有很多方法,但這些方法不一定全都被使用者類所需要。
預設介面卡(default adapter):預設適配模式的核心。它實現target角色介面,為所有方法提供空的實現(也就是{}的空實現)。
client:使用者類,繼承於預設介面卡,實現target角色介面中感興趣的方法。
public inte***ce subjecttarget
public abstract class subjectadapter implements subjecttarget
@override
public void learnenglish()
@override
public void learnmath()
@override
public void learnbiological()
}
public class studenta extends subjectadapter
}public class studentb extends subjectadapter
}
設計模式 介面卡模式 類介面卡 物件介面卡
乙個小例子,便於理解,上 這是我們造的。現在想用這個方法。public class adaptee 類介面卡。對我們想要的方法封裝一下,target就能像之前一樣,呼叫request方法即可。public class adapter1 extends adaptee implements targe...
介面卡模式 預設介面卡,類介面卡,物件介面卡
模式思想 改變乙個類的對外介面 增加或減少 以滿足不同外部呼叫者的需求 角色成員 目標介面 target 客戶所期待的介面。目標可以是具體的或抽象的類,也可以是介面。需要適配的類 adaptee 需要適配的類或適配者類。介面卡 adapter 通過包裝乙個需要適配的物件,把原介面轉換成目標介面。適配...
設計模式之介面卡模式(類介面卡模式)
介面卡模式,即定義乙個包裝類,用於包裝不相容介面的物件 包裝類 介面卡adapter 被包裝物件 適配者adaptee 被適配的類 把乙個類的介面變換成客戶端所期待的另一種介面,從而使原本介面不匹配而無法一起工作的兩個類能夠在一起工作。介面卡模式的形式分為 類的介面卡模式和物件的介面卡模式 模式原理...