适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。
这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。
假设场景 手机充电需要5v的电,现在只有220v电压,需要适配器,也就是 变压器来提供电。 就是直接数据不能满足需要,需要转换数据的时候 使用.
手机需要的是5v的电压
/*** @author meikb* @desc 5伏的变压器* @date 2020-05-23 11:56*/public interface Voltage5 {//提供5v的电压 输出的接口public int outPut5V();}
现在有一个提供220v的电源
/*** @author meikb* @desc 220伏的变压器* @date 2020-05-23 11:56*/public class Voltage220 {//提供220v的电压 输出的接口public int outPut220V(){return 220;}}
有5v的电压 手机才能充电
/*** @author meikb* @desc* @date 2020-05-23 11:57*/public class Mobile {public void charging(Voltage5 voltage5){if(5 == voltage5.outPut5V()){System.out.println("开始充电!!");}else{System.out.println("电压异常,停止充电!!");}}}
把220v的电压 通过转换 转换成5v的电压
public class VoltageAdapter implements Voltage5{public Voltage220 voltage220;VoltageAdapter(Voltage220 voltage220){this.voltage220 = voltage220;}@Overridepublic int outPut5V() {return voltage220.outPut220V()/44;}}
测试主函数
/*** @author meikb* @desc* @date 2020-05-23 11:58*/public class AdapterMain {public static void main(String[] args) {Mobile mobile = new Mobile();Voltage220 voltage220 = new Voltage220();//一般的想法 直接在这里转换成想要的数据//使用设计模式 提供一个转换类 VoltageAdapter 专门转换数据Voltage5 voltage5 = new VoltageAdapter(voltage220);mobile.charging(voltage5);}}
