【设计模式学习笔记】适配器模式
适配器模式
-
解决的问题:
将不兼容的接口转换为可兼容的接口,让原本由于接口不兼容而不能一起工作的类可以一起工作。
可以用于补救设计上的缺陷。 -
类适配器:
使用继承关系实现
适配器类继承自类并实现不兼容的接口,兼容的部分可以直接调用,不兼容的部分可以重写。
adapter extens Class implements Interface{} -
对象适配器:
使用组合关系实现
适配器类实现不兼容的接口,将类依赖注入,然后实现接口内的方法。方法里可以调用依赖注入类的方法。每个接口和每个依赖注入的类都要重写(直接调用或者重写)
adapter implements Interface{
private Class class;
public adapter(){
this.class = class;
}
} -
应用场景
-
封装有缺陷的接口设计
添加新的接口声明,基于新的接口声明将老的接口封装起来。 -
统一多个类的接口设计
有多个相同功能的类时,创建一个新的接口,将这几个类都基于接口实现。然后统一调用接口。 -
替换依赖的外部系统
新建一个适配器类继承自相同的接口,然后将新的外部系统依赖注入,在重写的方法里调用新的外部系统的方法。原来的调用代码无需改动。 -
兼容老版本接口
将老版本接口里的实现替换为新的接口实现,不改变老版本的接口名和类名。 -
适配不同格式的数据