适配器模式:Adapter Pattern,又叫作变压器模式,它的功能是将一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作,属于结构型设计模式
适配器模式的三种形式:
- 类适配器:通过继承源类,实现目标类接口实现
- 对象适配器:通过实现目标类接口,同时内部持有源对象引用实现(组合)
- 接口适配器:类适配器和对象适配器着重于将系统存在的一个角色(Adaptee)转化成目标接口(ITarget)所需的内容,而接口适配器的使用场景是当接口的方法过多时,如果直接实现接口,则类会多出许多空实现的方法,显得很臃肿。此时,使用接口适配器就能只实现我们需要的接口方法,通过持有源接口的引用,然后实现目标接口(组合)
适配器的应用场景:一般用于系统维护阶段的功能新增等
类适配器
类适配器的原理:通过继承来实现适配器功能
// 目标角色,即期望的接口
public interface DC5 {
int output();
}
// 源角色:存在于系统中,内容满足客户需求但接口不匹配的接口实例
public class AC220 {
public int outputAC220() {
int output = 220;
System.out.println("输出电压:" + output);
return output;
}
}
// 适配器:将源角色转换成目标角色
public class PowerAdapter extends AC220 implements DC5 {
@Override
public int output() {
int adapterInput = super.outputAC220();
int adapterOutput = adapterInput / 44;
System.out.println("使用Adapter将输入" + adapterInput + "转换成" + adapterOutput);
return adapterOutput;
}
}