适配器模式(Adapter Pattern)
这个模式的作用是将一个类的接口转换成客户端需要的类.
现实中的例子,例如电源适配器, 将220V的电压转换成电器需要的工作电压.
项目开发中可以使用这个模式在不改变现有代码的基础上将一些功能转换或扩展成自己需要的功能, 这样也不会影响到调用原有代码的功能的模块.
这时候就可以考虑使用继承原有的Adaptee类扩展出一个新的类供客户端代码调用(类适配器),或者使用聚合的方式使原有的类成为新的类的一部分(对象适配器).
示例代码
- 类适配器
// 使用接口定义客户端需要的功能, 具体实现在适配器类中
public interface Target {
void request();
}
// 项目中已存在的类
public class Adaptee {
public void specificRequest() {
// ...业务代码
}
}
// 适配器类将现有的类转换成客户端需要的类
// 客户端通过使用适配器类来获得需要的功能
public class Adapter extends Adaptee implements Target {
public void request() {
specificRequest();
}
}
- 对象适配器
public class Adapter implements Target {
private Adaptee adaptee;
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
public void request() {
adaptee.specificRequest();
}
}