08 适配器模式(Adapter Design Pattern)
从名字就能看出来,为了适配不同的使用条件,做兼容用。 使得由于接口不兼容不能一起用的类可以一起使用。
使用场景
适配器模式允许创建一个中间层类, 其可作为代码与遗留类、 第三方类或提供怪异接口的类之间的转换器。欧美国家和国产插座不同,USB 设备适配等。
举个例子:k8s 是一个应用运维框架,因为每家云厂商的基础设施都不同。 架构不同,机器版本不同等等。此时为了众多云厂商为了适配 k8s,就会作 adapter 来适配自己的云环境。
适配器分类
适配器分为两种,一种是对象适配器,一种是类适配器。
对象适配器,适配器类实现其中一个对象的接口,并对另一个对象进行封装,所有语言通用。
类适配器:适配器类同时继承两个对象。这种适配器模式只能在支持多重继承的语言中使用,例如 C++ 和 Java。
1. 应用
Spring MVC 中的 HandlerAdapter 是经典的适配器设计模式。 参考文章:https://blog.csdn.net/zxd1435513775/article/details/103000992
1.1 优点
- 符合单一职责和开闭原则;
- 代码解耦合,扩展性良好。
1.2 缺点
- 整体复杂度增加,难以理解。
2. 实现分析
一个场景:遗留的老设备输出是 xml 数据。现代新系统都使用 json 输入。