适配器模式用于系统修改时,新的外部类无法与旧系统兼容(或旧的类无法与新系统),增加适配器使得系统能够兼容外部类。适配器模式有两种实现方式:1. 适配器类继承外部类;2. 适配器持有外部类的引用。各个感觉考虑接口一致性,继承的方案对旧系统代码的改动会少一些。
适配器模式是一种系统迭代时被迫采取的设计模式,而不是在系统设计之初就考虑的设计模式。因为在系统设计时,是不应该出现不兼容现象的。
下面以电源适配器为例展示适配器模式。
外部类:ElectricSource.java,家用220V电源
public class ElectricSource {
public void power() {
System.out.println("220V");
}
}
适配器类:ElectricAdapter.java,电源适配器,将220V电源转换为22V笔记本电源。
public class ElectricAdapter extends ElectricSource {
@Override
public void power() {
System.out.print("Source: ");
super.power();
System.out.println("Target: 22V");
System.out.println("Using 22V");
}
}
驱动类:Main.java,笔记本使用22V电源供电。
public class Main {
public static void main(String[] args) {
ElectricAdapter ea = new ElectricAdapter();
ea.power();
}
}