前言
适配器模式:将一个类的接口转化成所希望使用的接口。使得接口不兼容的类能够一起工作。
Adapter主要用来组合不相关的类,利用原有的接口来适配成新的接口,完成客户所需要的类型。主要点是1.复用现有类实现;2.复用环境需要新的接口。适配器主要有类适配器模式和对象适配器模式,主要考虑对象适配器模式。
介绍
适配器类图如下:(取自连接图)
如上所示:
目标对象Target类(复用环境所需要的接口类型)
被适配者Adaptee类(复用的现有类)
适配类Adapter(进行适配的类)
代码
public class Adaptee {
public void oldMethod() {
System.out.println("复用的旧方法!");
}
}
public interface Target {
/**
* 需要的新的接口
*/
void newMethod();
}
public class Adapter implements Target {
private Adaptee adaptee = new Adaptee();
@Override
public void newMethod() {
adaptee.oldMethod();
}
}
public class Client {
public static void main(String[] args) {
Target target = new Adapter();
target.newMethod();
}
}
以上就是简单的代码使用,使用newMethod(),最后调用了oldMethod()方法。主要在于Adapter类内部复用旧类。
注:Adapter类,可写入构造函数,灵活适配Adaptee类。Adaptee类等也可进行扩充。
使用场景
主要用于双方的接口都不易进行修改的情况下使用。不改变原有接口,却还能使用新接口的功能。
参考资料:
https://www.ibm.com/developerworks/cn/java/j-lo-adapter-pattern/(推荐)
http://blog.youkuaiyun.com/zhangjg_blog/article/details/18735243