介面卡模式將某個類的介面轉換成客戶端期望的另乙個介面表示,目的是消除由於介面不匹配所造成的類的相容性問題。
介面卡模式主要分為三類:類的介面卡模式、物件的介面卡模式、介面的介面卡模式。
1. 類的介面卡模式
核心思想就是:有乙個source類,擁有乙個方法,待適配,目標介面時targetable,通過adapter類,將source的功能擴充套件到targetable裡:
public class source
}
public inte***ce targetable
public class adapter extends source implements targetable
}
adapter類繼承source類,實現targetable介面,下面是測試類:
public class adaptertest
}
輸出:
this is original method!
this is the targetable method!
這樣targetable介面的實現類就具有了source類的功能。
2. 物件的介面卡模式
只需要修改adapter類的原始碼即可:
private source source;
super();
this.source = source;
} @override
public void method2()
@override
public void method1() }
測試類:
public class adaptertest
}
3. 介面的介面卡模式
介面的介面卡是這樣的:有時我們寫的乙個介面中有多個抽象方法,當我們寫該介面的實現類時,必須實現該介面的所有方法,這明顯有時比較浪費,因為並不是所有的方法都是我們需要的,有時只需要某一些,此處為了解決這個問題,我們引入了介面的介面卡模式,借助於乙個抽象類,該抽象類實現了該介面,實現了所有的方法,而我們不和原始的介面打交道,只和該抽象類取得聯絡,所以我們寫乙個類,繼承該抽象類,重寫我們需要的方法就行。
public inte***ce sourceable
public void method1(){}
public void method2(){}}
public void method1()}
public void method2()}
public static void main(string args) }
測試輸出:
the sourceable inte***ce's first sub1!
the sourceable inte***ce's second sub2!
達到了我們的效果!
總結:
類的介面卡模式:當希望將乙個類轉換成滿足另乙個新介面的類時,可以使用類的介面卡模式,建立乙個新類,繼承原有的類,實現新的介面即可。
介面卡模式Adapt
例子 牆上的插座為三孔介面,但是很多家電都是雙孔標準,這個時候就需要乙個介面卡,讓雙孔的家電通過介面卡後也可以接入三孔介面的插座 兩種介面卡 物件介面卡 三孔插座 雙孔插座 使用雙孔插座的電視 物件介面卡 author wjm date 2020 6 16 17 10 public class tv...
介面卡模式(Adapt) 設計模式(六)
作用 將乙個類的介面轉換成客戶希望的另外乙個介面。adapt 模式使得原本由於介面不相容而不能一起工作的那些類可以一起工作。解析 adapt 模式其實就是把完成同樣的乙個功能但是介面不能相容的類橋接在一起使之可以在一起工作,這個模式使得復用舊的介面成為可能.實現 adapt 模式有兩種實現辦法,一種...
設計模式 五 介面卡模式
package zzq.designpatterns.structuralpattern 介面卡模式 adapter 的定義如下 將乙個類的介面轉換成客戶希望的另外乙個介面,使得原本由於介面不相容而不能一起工作的那些類能一起工作。介面卡模式分為類結構型模式和物件結構型模式兩種,前者類之間的耦合度比後...