将一个类的接口转换成客户希望的另外一个接口。apapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作
Java中比较常用对象适配器模式,对象适配器模式就是,继承target,重写request(),在adapter中,创建adaptee对象,把target中的request,指向adaptee中的specificRequest,即完成适配。客户端若要调用specifiRequst,只需要生成adpater对象即可
优点
通过适配器,客户端可以调用同一接口,因而对客户端来说是透明的。这样做更简单、更直接、更紧凑。
复用了现存的类,解决了现存类和复用环境要求不一致的问题。
将目标类和适配者类解耦,通过引入一个适配器类重用现有的适配者类,而无需修改原有代码。
一个对象适配器可以把多个不同的适配者类适配到同一个目标,也就是说,同一个适配器可以把适配者类和它的子类都适配到目标接口。
缺点
对于对象适配器来说,更换适配器的实现过程比较复杂。
代码
Main
public class Main {
public static void main(String[] args) {
Target target=new Target();
target.request();
Target adapter=new Adapter();
adapter.request();
}
}
Adaptee
public class Adaptee {
public void specificRequest(){
System.out.println("adaptee request");
}
}
Target
public class Target {
public void request(){
System.out.println("target request");
}
}
Adapter
public class Adapter extends Target{
private Adaptee adaptee=new Adaptee();
public void request(){
this.adaptee.specificRequest();
}
}