案列
设计图
代码
通用类图
1.含义:
将一个借口转换成客户端需要的接口,让原本两个无关的类在一起工作
2.设计图
3.角色说明
目标对象:你希望将源对象转换成什么对象,那这个对象就是目标对象。
源对象:你想将什么对象转换成目标对象,那这个对象就是源对象,源对象一般是运行良好的类或者对象。
适配器对象:将源对象转换成目标对象,采用继承或者关联的方式
4.代码
1.目标对象接口
/**
* Created by Administrator on 2019/4/9.
* 目标对象
*/
public interface Target {
void request();
}
2.具体目标对象
* @ClassName ConcreteTarget
* @Description TODO 具体目标对象
* @Author Administrator
* Date 2019/4/11 11:31
* Version 1.0
*/
public class ConcreteTarget implements Target{
@Override
public void request() {
System.out.println("if need help please call me");
}
}
3.源对象
/**
* Created by Administrator on 2019/4/9.
* 源对象:一个正在投产中的类或者接口,新建的类也可以
*/
public class Adaptee1{
public void spesificRequest1() {
}
}
4.转换器
/**
* Created by Administrator on 2019/4/9.
* 适配器类,一对多个源对象,采用引用的方式。
*/
public class Adapter implements Target{
private Adaptee1 adaptee1=new Adaptee1();
@Override
public void request() {
adaptee1.spesificRequest1();
}
}
优势
1.将原本两个没有关联的类联系在一起工作。
2.提高代码复用。
3.灵活程度高,不需要的时候可以随时去掉。
使用场景
1.适配器模式适用于后期补救项目,前期设计的时候不要采用这个模式