概述
适配器模式 (Adapter Pattern) 将某个类的接口转换成客户希望的另一个接口,使接口不兼容的类也能够一起工作。又称包装器 (Wrapper)。既可以作为类结构型模式,也可以作为对象结构型模式。
优点:目标类和 adaptee 类解耦。提高了类的透明性和可复用性,灵活性和扩展性。
缺点:类结构型,使用有局限性;对象结构型,实现较复杂。
类结构型
class Adaptee {
void a() {}
void b() {}
}
interface Target {
void c();
void d();
}
class Adapter extends Adaptee implements Target {
void c() {
super.a();
}
void d() {
super.b();
}
}
图示:
对象结构型
class Adaptee {
void a() {}
}
abstract class Target {
void b();
}
class Adapter extends Target {
Adaptee atee;
void b() {
atee.a();
}
}
图示:
默认适配器:不想实现接口中全部方法时,可以定义一个实现该接口的抽象类,给出接口中所有方法的默认实现。这个抽象类的子类根据具体需求重写或者不重写超类中的接口方法。
双向适配器:在对象结构型中,如果 adapter 同时有 adaptee 和 target 的实例时,可以在 adaptee 的方法中使用 target 的方法,在 target 的方法中使用 adaptee 的方法。
参考
标签:适配器,接口,class,模式,08,Adaptee,void,结构型 From: https://www.cnblogs.com/xdreamc/p/16461064.html[1]. 刘伟, 设计模式. 2011.