1.模式定义:
将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能在一起工作的那些类可以一起工作
2.应用场景
客户端需要一个target(目标)接口,但是不能直接重用已经存在的adaptee(适配者)类,因为它的接口和target接口不一致,所以需要adapter(适配器)将adaptee转换为target接口。前提是target接口和已存在的适配者adaptee类所做的事情是相同或相似,只是接口不同且都不易修改。
3.类图
4.实例
适配者类
public class Adaptee {
public void adapteeRequest(){
System.out.println("我是被适配的方法");
}
}
适配器类
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
System.out.println("before");
super.adapteeRequest();
System.out.println("end");
}
}
目标接口
public interface Target {
void request();
}
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
5.单元测试
public class Client {
public static void main(String[] args) {
Target target=new ConcreteTarget();
target.request();;
Target adapterRequest=new Adapter();
adapterRequest.request();
}
}