示例类图
类适配器模式.png
示例代码
- 客户端(应用层)要求的接口是Target定义的格式;
- 现有的类 Adaptee 和 Target 的接口不一致;
- 把现有的类 Adaptee 适配成 Target,通过 Target 向外提供服务,复用了现有类的功能;
public class Adaptee {
public void adapteeRequest(){
System.out.println("被适配者的方法");
}
}
public interface Target {
void request();
}
public class Adapter extends Adaptee implements Target{
@Override
public void request() {
//...
super.adapteeRequest();
//...
}
}
public class ConcreteTarget implements Target {
@Override
public void request() {
System.out.println("concreteTarget目标方法");
}
}
public class Test {
public static void main(String[] args) {
Target target = new ConcreteTarget();
target.request();
Target adapterTarget = new Adapter();
adapterTarget.request();
}
}
输出:
concreteTarget目标方法
被适配者的方法