设计模式【结构型】之适配器模式
适配器模式的应用场景
适配器模式(Adapter Pattern)是将一个类的接口转换成用户期望的另一个接口,使原来接口不兼容的类可以一起工作,属于结构型设计模式。
适用的业务场景
(1)已存在类的方法和需要不匹配(方法结果相同或相似的情况)
(2)适配器模式不是软件初始阶段考虑的设计模式,是随着软件发展,由于不同产品,不同厂家造成功能类似而接口不同的问题的解决方案,有点亡羊补牢的感觉。
举例
生活中也有类似的应用场景,如电源插座转换头、手机充电转换头、显示器转接头等。
在中国民用电都是220V交流电,但手机锂电池使用的是5V的直流电。因此我们给手机充电时就需要电源适配器来进行转换。
下面用代码来还原这个生活场景。
//1.创建AC220类,表示220V交流电
public class AC220{
public int outputAC220V(){
int output = 220;
System.out.println("输出交流电"+output+"V");
return output;
}
}
//2.创建DC5接口,表示5V直流电:
public interface DC5{
public int outputDC5V();
}
//3.创建电源适配器
public class PowerAdapter implement DC5{
private AC220 ac220;
public PowerAdapter(AC220 ac220){
this.ac220 = ac220;
}
public int outputDC5V(){
int adapterInput = ac220.outputAC220V();
//变压器
int adapterOutput = adapterInput/44;
System.out.println("使用PowerAdapter输入电流"+adapterInput+",输出电流:"+adpterOutput);
return adapterOutput;
}
}