java設計模式之適配器模式

適配器模式:將一個類的接口轉換成客戶希望的另一個接口。適配器模式讓那些接口不兼容的類可以一起工作。

適配器就是一種適配中間件,它存在於不匹配的二者之間,用於連接二者,將不匹配變得匹配,簡單點理解就是平常所見的轉接頭,轉換器之類的存在。適配器模式主要應用於希望複用一些現存的類,但是接口又與複用環境要求不一致的情況。

適配器模式有兩種:類適配器模式和對象適配器模式及哦,其中對象適配器模式更常用。

UML類圖

類適配器模式:

//vga接口
interface Vga{
    void showVga();
}
//usb接口
interface Usb{
    void showUsb();
}
//usb實現類usber
class Usber implements Usb{
    @Override
    public void showUsb() {
        System.out.println("usb");
    }
}
//適配器
class Adapter1 extends Usber implements Vga{
    @Override
    public void showVga() {
        showUsb();
    }
}
public class Test {
    public static void main(String[] args) {
        Vga vga = new Adapter1();
        vga.showVga();
    }
}

通過適配器,使vga接口變爲usb接口。

對象適配器模式:

//vga接口
interface Vga{
    void showVga();
}
//usb接口
interface Usb{
    void showUsb();
}
//usb實現類usber
class Usber implements Usb{
    @Override
    public void showUsb() {
        System.out.println("usb");
    }
}
//適配器
class Adapter1 implements Vga{
    private Usb usb;
    public Adapter1(Usb usb){
        this.usb = usb;
    }
    @Override
    public void showVga() {
        usb.showUsb();
    }
}
public class Test {
    public static void main(String[] args) {
        Vga vga = new Adapter1(new Usber());
        vga.showVga();
    }
}

通過組合的方式實現適配器功能,在適配器中定義私有變量usb,再定義一個帶參數的構造器爲對象usb賦值,再在vga接口的實現方法中使用usb對象調用usb接口的方法。

此外還有接口適配器模式,適用於接口中有很多方法,而我們只想使用其中的一個或幾個方法,如果我們直接實現接口,那麼我們要對所有的方法進行實現,哪怕我們僅僅是對不需要的方法進行置空(只寫一對大括號,不做具體方法實現)也會導致這個類變得臃腫,調用也不方便,這時我們可以使用一個抽象類作爲中間件,即適配器,用這個抽象類實現接口,而在抽象類中所有的方法都進行置空,那麼我們在創建抽象類的繼承類,而且重寫我們需要使用的那幾個方法即可。

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章