一、適配器模式概念
適配器模式(Adapter Pattern)是作爲兩個不兼容的接口之間的橋樑。這種類型的設計模式屬於結構型模式,它結合了兩個獨立接口的功能。這種模式涉及到一個單一的類,該類負責加入獨立的或不兼容的接口功能,將一個類的接口轉換成客戶希望的另外一個接口。適配器模式使得原本由於接口不兼容而不能一起工作的那些類可以一起工作。比如:我們手機用到的電是18V,但是我們家裏的交流電是220V,那麼現在就需要一個適配器幫我們把220V的電轉換成我們手機要用的18V電。
二、代碼解析
現在我們的目標是18V電,先創建一個目標接口
public interface Target18{
public void V18();
}
我們家現有的電壓220V
public class Adapee220{
public void show(){
System.out.println("輸入220V電壓");
}
}
現在我們需要一個適配器來實現電壓的轉化
public class Adaper implements Target18{
private Adapee220 adapee220;
public Adaper(Adapee220 adapee220){
super();
this.adapee220=adapee220;
}
public void v18(){
adapee220.show();
//現在只是用一個輸出來代替轉換的方法,就當做已經實現轉換了哈哈
System.out.println("將220V轉換爲18V電壓輸出");
}
}
現在我們建一個測試類看看
public class Maintest{
public static void main(String[] args){
//需要被適配的類
Adapee220 adapee220=new Adapee220();
//接口調用適配器
Target18 target18=new Adaper(adapee220);
//最終輸出18V電壓
target18.v18();
}
}
最重輸出的結果是:
輸入220V電壓
將220V轉爲18V電壓輸出
三、適配器模式的優缺點
優點:
1、可以讓任何兩個沒有關聯的類一起運行。
2、提高了類的複用。
3、增加了類的透明度。
4、靈活性好。
缺點:
1、過多地使用適配器,會讓系統非常零亂,不易整體進行把握。比如,明明看到調用的是 A 接口,其實內部被適配成了 B 接口的實現,一個系統如果太多出現這種情況,無異於一場災難。因此如果不是很有必要,可以不使用適配器,而是直接對系統進行重構。
2.由於 JAVA 至多繼承一個類,所以至多隻能適配一個適配者類,而且目標類必須是抽象類。