适配器适用场景
已经存在的类,他的方法和需求不匹配(方法结果相同或相似)
适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品,
不同厂家造成功能类似而接口不相同的情况下的解决方案(设计阶段尽量不使用)
优点:
能提高类的透明性和复用,现有的类复用但不需要改变
目标类和适配器类解耦,提高程序扩展性
符合开闭原则
适配器模式-缺点:
- 适配器编写过程需要全面考虑,可能会增加系统的复杂性
- 增加系统代码可读难度(明明调用A对象,内部是调用了一个委托的对象的方法)
适配器模式分为对象适配器和类适配器两种
和适配器模式相关的设计模式: 外观模式(门面模式)
两种适配器模式的区别:
组合和继承的用法
用 Adapter 去适配 Adaptee
Adapter 通过继承 Adaptee ,复用Adaptee的各种代码,去实现Target
对象适配器模式
成员变量引入 Adaptee
也就是 委托给 Adaptee 实现
其实设计模式很多都有交叉,比如一个 装饰者模式,(当你用装饰者模式的时候,可能有实现另一个目标接口),那你可能也在用了适配器模式,就是这么偶然(下面就是我写的一个项目 demo,用于导出spss文件)