摘要
将两种完全不同的事物联系到一起,就像现实生活中的变压器。假设一个手机充电器需要的电压是20V,但是正常的电压是220V,这时候就需要一个变压器,将220V的电压转换成20V的电压,这样,变压器就将20V的电压和手机联系起来了。
适配器模式就是将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。
模式中的角色
- 目标接口(Target):客户所期待的接口,目标可以是具体的或抽象的类,也可以是接口。
- 需要适配的类(Adaptee):需要适配的类或适配者类
- 适配器(Adapter):通过包装一个需要适配的对象,把原接口转换成目标接口。
代码实现
//手机类
public class Phone{
public static final int V = 220; //正常电压220V,是一个常量
private VoltageAdapter adpter;
//充电
public void charge(){
adapter.changeVoltage();
}
public void setAdapter(VoltageAdapter adpter){
this.adpter = adpter;
}
}
//变压器
public class VoltageAdapter{
//改变电压的功能
public void changeVoltage(){
System.out.println("正在充电...");
System.out.println("原始电压:" + Phone.V + "V");
Ststem.out.println("经过变压器转换后的电压:" + (Phone.V - 200) + "V");
}
}
//实现适配器模式的测试类,client调用
public class Test{
public static void main(String[] args){
Phone phone = new Phone();
VoltageAdapter adapter = new VoltageAdapter();
phone.setAdapter(adpter);
phone.charge();
}
}