概述
适配器模式(Adapter Pattern):将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
我的笔记本电脑的工作电压是20V,而我国的家庭用电是220V,如何让20V的笔记本电脑能够在220V的电压下工作?答案是引入一个电源适配器(AC Adapter),俗称充电器或变压器,有了这个电源适配器,生活用电和笔记本电脑即可兼容,如图所示:
在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样引入一个称之为适配器的角色来协调这些存在不兼容的结构,这种设计方案即为适配器模式。
类图
类适配器模式:
对象适配器模式:
实现
//类适配器模式
public class Adapter extends Adaptee implements Target {
@Override
public void request() {
super.adapteeRequest();
}
}
class Adaptee {
public void adapteeRequest(){
System.out.println("适配器方法");
}
}
interface Target {
void request();
}
class ConcreTarget implements Target{
@Override
public void request() {
System.out.println("目标方法");
}
}
//对象适配器模式
public class Adapter implements Target {
public Adaptee adaptee = new Adaptee();
@Override
public void request() {
adaptee.adapteeRequest();
}
}
public class Client {
public static void main(String[] args) {
Target target = new ConcreTarget();
target.request();
Target adapter = new Adapter();
adapter.request();
}
}