适配器模式是23中设计模式之一,它的主要作用是在新接口和老接口之间进行适配。将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。
举例:将MicroUsb输出通过TypeC适配器转换为TypeC输出。
public interface UsbInterface { public String dataInput() ; public String dataOutput() ; }
public class MicroUsb implements UsbInterface { @Override public String dataInput() { return "USB输入数据"; } @Override public String dataOutput() { return "MicroUsb数据"; } }
public class TypeCUsb implements UsbInterface{ @Override public String dataInput() { return "USB输入数据"; } @Override public String dataOutput() { return "TypeC数据"; } }
public class TypecAdapter implements UsbInterface { private MicroUsb microUsb; public TypecAdapter(MicroUsb microUsb) { this.microUsb = microUsb; } @Override public String dataInput() { if (microUsb != null) { return microUsb.dataOutput(); } return null; } @Override public String dataOutput() { if (microUsb != null) { // 将MicroUsb 转换为TypeC return "TypeC数据"; } return null; } }
public class AdapterTest { public static void main(String[] args) { MicroUsb microUsb = new MicroUsb() ; System.out.println("MicroUsb输入: " + microUsb.dataInput()); System.out.println("MicroUsb输出: " + microUsb.dataOutput());; System.out.println("============="); TypecAdapter typecAdapter = new TypecAdapter(microUsb) ; System.out.println("TypecAdapter输入: " + typecAdapter.dataInput());; System.out.println("TypecAdapter输出: " + typecAdapter.dataOutput());; } }
MicroUsb输入: USB输入数据
MicroUsb输出: MicroUsb数据
=============
TypecAdapter输入: MicroUsb数据
TypecAdapter输出: TypeC数据