Java的介面卡模式

Mugglean發表於2018-04-22

  所謂介面卡模式,其實很簡單,就是將一個類的介面轉換成客戶端所期待的另一個介面,使得原本不相容的兩個類可以一起工作。

  假設我們有一個Type-c介面,但是要使用的介面確實usb的介面,這時候要怎麼辦呢?解決方法就是用一個介面卡將Type-c類轉換成usb類,這樣我們就能使用這個Type-c介面了。

  實現介面卡模式有兩種方法,分別是組合方式和繼承方式。

  1.組合方式

  組合方式就是講被適配的物件組合到介面卡類中,在這裡被適配物件就是就是Type-c介面。

  2.繼承方式

  繼承方式就是通過多重繼承不相容的介面以匹配目標介面。

  實現程式碼如下:

Usb.java
package com.muggle.Ada;

public class Usb {
    public void useUsb() {
        System.out.println("使用了usb介面");
    }
}


Typec.java
package com.muggle.Ada;

public interface Tyepec {
    public void useTypec() ;
}


Adapter.java
package com.muggle.Ada;
//使用組合方式實現介面卡模式
public class Adapter implements Tyepec {
    private Usb plug;

    public   Adapter(Usb plug) {
        // TODO Auto-generated constructor stub
        this.plug=plug;
    }
                                                                                                                                                                                                                                                   
    @Override
    public void useTypec() {
        // TODO Auto-generated method stub
        plug.useUsb();
        System.out.println("完成轉化使用了Type-c介面");
        
    }

}

newAdapter.java
package com.muggle.Ada;

public class newAdapter extends Usb implements Tyepec {
  //使用繼承方式實現介面卡模式  
    @Override
    public void useTypec() {
        // TODO Auto-generated method stub
        this.useUsb();
        System.out.println("完成轉化使用了Type-c介面");
    }

}

TestDrive.java
package com.muggle.Ada;


public class TestDrive {

    public static void main(String[] args) {
        Tyepec tyepec=new Adapter(new Usb());
        tyepec.useTypec();
        
        Tyepec newtypec=new newAdapter();
        newtypec.useTypec();
    }

}

  執行結果如下:

使用了usb介面
完成轉化使用了Type-c介面
使用了usb介面
完成轉化使用了Type-c介面

  這樣我們就使用了介面卡模式的兩種方法對usb類進行了轉換。

相關文章