适配器模式结构:
Target:目标抽象类
Adapter:适配器类
Adaptee:适配者类
Client:客户类
UML图:
例子代码:
public interface Target {
void request();
}
public class Adapter implements Target {
Adaptee adaptee;
public Adapter() {
}
public Adapter(Adaptee adaptee) {
this.adaptee = adaptee;
}
@Override
public void request() {
if(adaptee != null){
adaptee.specialRequest();
}else {
System.out.println("普通功能");
}
}
}
public class Adaptee {
public void specialRequest(){
System.out.println("特殊功能");
}
}
public class Client {
public static void main(String[] args) {
Adaptee adaptee = new Adaptee();
//不装在适配器
Target target = new Adapter();
target.request();
System.out.println("\n----转载适配器之后----\n");
//装载适配器
Target target1 = new Adapter(adaptee);
target1.request();
}
}
结果打印: