描述:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作
角色:
Target(目标抽象类):定义客户所需接口
Adaptee(适配者类):现有的接口
Adapter(适配器类):作为一个转换器,对Adaptee和Target进行适配
类适配器
//适配者类,当前存在的一个接口
public class Adaptee {
public void adapteeRequest() {
System.out.println("被适配者的方法");
}
}
//客户想要调用的接口,即访问request方法就可以调用Adaptee 中的adapteeRequest方法
public interface Target {
void request();
}
//适配器类Adapter
public class Adapter extends Adaptee implements Target{
@Override
public void request() {
//...一些操作...
super.adapteeRequest();
//...一些操作...
}
}
public class Test {
public static void main(String[] args) {
Target adapterTarget = new Adapter();
adapterTarget.request();
}
}
对象适配器
对象适配器与类适配器不同之处在于,类适配器通过继承来完成适配,对象适配器则是通过关联来完成,这里稍微修改一下 Adapter 类即可将转变为对象适配器
public class Adapter implements Target{
// 适配者是对象适配器的一个属性
private Adaptee adaptee = new Adaptee();
@Override
public void request() {
//...
adaptee.adapteeRequest();
//...
}
}