适配器模式是在目标和适配者之间建立一层链接,可以将适配者接口转换为目标接口。
适配器分为类结构型模式和对象结构型模式两种,前者采用继承方式,后者采用组合方式。
类结构型适配器模式的UML如下:
代码如下:
// 目标接口,提供给客户使用
interface Target {
public void request();
}
// 适配者接口
class Adaptee {
public void specificRequest() {
System.out.println("适配者中的业务逻辑代码被调用!");
}
}
// 适配器类
class ClassAdapter extends Adaptee implements Target {
public void request() {
specificRequest();
}
}
// 客户端代码
public class Client {
public static void main(String[] args) {
System.out.println("类适配器模式测试");
Target target = new ClassAdapter();
target.request();
}
}
对象结构型适配器模式的UML图:
代码为:
// 目标接口
interface Target {
public void request();
}
// 适配者接口
class Adaptee {
public void specificRequest() {
System.out.println("适配者中的业务逻辑代码被调用!");
}
}
// 对象适配器类
class ObjectAdapter implements Target {
private Adaptee adaptee;
public ObjectAdapter(Adaptee adpatee) {
this.adaptee = adpatee;
}
public void request() {
adaptee.specificRequest();
}
}
// 客户类
public class Client {
public static void main(String[] args) {
SYtem.out.println("结构适配器模式测试");
Adaptee adatee = new Adaptee();
Target target = new ObjectAdapter(adatee);
target.request();
}
}
除此之外,也可以设计为双向型适配器模式,UML图如下: