适配器模式
适配器模式
将某个类的接口转换成客户端期望的另一个接口表示。
目的是让原本因接口不匹配不能一起工作的两个类可以协同工作。
主要有三种:
- 类适配器
- 对象适配器
- 接口适配器
类适配器
Adapter类,通过继承 被适配的类, 实现目标类接口, 实现适配。
比方说充电器,它本身相当于Adapter,220V交流电就是被适配的类,我们的目标是直流5V。
代码实现:
//适配器类
public class VoltageAdapter extends Voltage220V implements IVoltage5V {
@Override
public int output5V() {
// TODO Auto-generated method stub
//获取到220V电压
int srcV = output220V();
int dstV = srcV / 44 ; //转成 5v
return dstV;
}
}
//被适配的类
public class Voltage220V {
//输出220V的电压
public int output220V() {
int src = 220;
System.out.println("电压=" + src + "伏");
return src;
}
}
//适配接口
public interface IVoltage5V {
public int output5V();
}
类适配器因为要继承被适配器类,所以目标类必须是一个接口。
对象适配器
就是将上面例子的Adapter类作修改,不是继承被适配类,而是采取委托方式,持有被适配器类的实例。
这样相对类适配器模式更灵活,而且成本更低了。
接口适配器
当不需要全部实现接口提供的方法时,可先设计一个抽象类或接口,并为该接口的每个方法提供一个默认实现(空方法),那么该抽象类的子类可有选择地覆盖这些方法,将它适配成我们所期望的那样。

查看15道真题和解析