适配器模式
两个不兼容的接口之间的桥梁,可以使接口不兼容导致不能一起工作的那些类可以一起工作
-
UML
-
code
public interface UsbTypeA { void printTypeA() ; }
public interface UsbTypeC { void isTypeC() ; }
public class UsbTypeAImpl implements UsbTypeA {
@Override
public void printTypeA() {
System.out.println("this is UsbTypeA 接口");
}
}
public class UsbTypeCImpl implements UsbTypeC {
@Override
public void isTypeC() {
System.out.println("this is USB Type-C 接口");
}
}
- 测试
public class Main {
public static void main(String[] args) {
//一般情况下
UsbTypeA usbTypeA = new UsbTypeAImpl() ;
usbTypeA.printTypeA();
}
}
当我们的手机接口Type-A时,但是数据线只有Type-C的时候,就需要用转接口做适配,这种情况下就要增加一个适配器
/**
* @Desc 通过适配器访问 Usb-C
*/
public class Adapter implements UsbTypeA {
private UsbTypeC usbTypeC ;
@Override
public void printTypeA() {
if(null==usbTypeC){
usbTypeC = new UsbTypeCImpl() ;
}
usbTypeC.isTypeC();
}
}
public class Main {
public static void main(String[] args) {
//一般情况下
// UsbTypeA usbTypeA = new UsbTypeAImpl() ;
// usbTypeA.printTypeA();
//-----------------------
UsbTypeA usbTypeA1 = new Adapter() ;
usbTypeA1.printTypeA();
}
}
这样我就实现了只有USB-A就可以访问USB-C
如理解有误,请指正