适配器应用场景:

适配器常常用在如下场景,比如现在已经有一个已有的功能,但是现在客户端的需求改变了,我们要么重新修改源码来适应新的接口,但是这种方案的缺点是改动较大,原有的代码不能复用,还有一种方案就是使用适配器模式将已有的功能适配成满足最新需求的形式,这样就可以复用已有的功能了,而不是重新实现新的接口,适配器模式主要负责把不兼容的接口转换成客户端期望的样子。
适配器的UML图:

适配器中Taget 和Adaptee是没有什么必然的联系的,两者当中的方法可以各不相同。

一般适配器通常是一个类,它去实现Target接口,然后在适配器的具体实现里面调用Adaptee。而Adaptee就是我们原先已经有的代码。通过这种方式就可以调整已有的代码来满足最近接口Taget的需求了。

类适配器:


就是通过让Adapter 去继承Adaptee,同时实现Target接口来完成适配的。
其实类适配器和对象器本质没有任何区别,只不过是Adapter 类引入Adaptee的方式不一样罢了。具体可以使用继承,构造方法注入,形参方式注入,

public class Adaptee {
public void originalOperation() {
System.out.println("originalOperation");
}
}
public interface Target {
public void targetOperation();
}
public class Adapter implements Target{
private Adaptee adaptee = null;
public Adapter() {
this.adaptee = new Adaptee();
}
public void targetOperation() {
this.adaptee.originalOperation();
}
}
public class Client {
public static void main(String args[]) {
Target target = new Adapter();
target.targetOperation();
}
}
Contents
  1. 1. 适配器应用场景:
  2. 2. 类适配器: