定义
把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。
使用场景
- 需要使用现有的类,但此类的接口不符合需要。
- 需要一个统一的输出接口,而输入端类型不可预知。
Java 代码示例
- 类适配器模式
public interface Target {
void operate();
}
public class Adaptee {
public void operate1() {
}
public void operate2() {
}
}
public class Adapter extends Adaptee implements Target {
@Override
public void operate() {
operate1();
operate2();
}
}
- 对象适配器模式
public class Adapter implements Target {
private Adaptee mAdaptee;
public void setAdaptee(Adaptee adaptee) {
mAdaptee = adaptee;
}
@Override
public void operate() {
mAdaptee.operate1();
mAdaptee.operate2();
}
}
该实现方式不会暴露 Adaptee 中的接口,更加灵活实用。