一.定义
在不改变原有代码的情况下,对功能进行适配。
属于结构型模式
二.通用写法
新增一个接口,封装要新增的功能。新建一个适配器继承原有的类并且实现这个新的接口。
原有功能类
public class OriginElectricity {
public void output220V() {
System.out.println("输出220v...");
}
}
需要新增的功能
public interface NewElectricity {
void output5V();
}
适配器
public class ElectricityAdapter extends OriginElectricity implements NewElectricity{
public void output5V() {
System.out.println("输出5v");
}
}
测试类:
public class Test {
public static void main(String[] args) {
ElectricityAdapter electricityAdapter = new ElectricityAdapter();
electricityAdapter.output5V();
}
}
输出结果
这样就实现了一个适配器,在不改变原来代码的基础上实现了新的功能,适配器类既具有原来类的方法,也具有新增的接口的方法。
上面的例子是类适配器,除此之外还有对象适配器和接口适配器,这里不再赘述
三.适配器模式在源码中的应用
HandlerAdapter
四.适配器模式的优缺点
优点:符合开闭原则,代码耦合性低
缺点:适配器模式容易引起类过多,给代码阅读带来困难