所謂介面卡模式,其實很簡單,就是將一個類的介面轉換成客戶端所期待的另一個介面,使得原本不相容的兩個類可以一起工作。
假設我們有一個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類進行了轉換。