一、简介
适配器模式(Adapter):将一个类的接口转化成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类一起工作。
通俗讲,就是将原本不能直接调用的接口,通过新的接口或类进行封装后,提供新的接口在内部进行转化,从而使用之前的接口。
实现方式分为三类:类适配器模式、对象适配器模式、接口适配器模式。
三者的区别在与Adapter和Adaptee的关系以哪种方式进行关联。
二、结构图
三、代码实现
实现:将220V电压转换为5V电压对手机充电。
1、Adaptee(220V电压)
public class Voltage220V {
public void output220V() {
System.out.println("220v充电");
}
}
2、Target(转换后的接口)
public interface Voltage5V {
void output5V();
}
3、Adapter(转换的实现类)
public class VoltageAdapter extends Voltage220V implements Voltage5V{
@Override
public void output5V() {
//输出220,然后进行转化后将220V转化为5V
output220V();
System.out.println("处理后输出为5V");
}
}
4、Phone(手机类,使用充电接口)
public class Phone {
public void charge(VoltageAdapter adapter){
adapter.output5V();
System.out.println("转换后的5V对手机充电");
}
}
5、Client(测试类)
public class Client {
public static void main(String[] args) {
Phone phone = new Phone();
phone.charge(new VoltageAdapter());
}
}
备注:
- 类适配器模式:Adapter作为子类继承Adaptee类。
- 对象适配器模式:Adapter类中持有Adaptee类变量。
- 接口适配器模式:Adapter类实现Adaptee接口。