Adapter (wrapper)
应用场景解释
- 适合支持多继承的语言实现
- 当前逻辑需要调用一个遗留系统,或者不可变的第三方服务. 且第三方服务签名不能直接被当前逻辑使用. 类型不匹配
- 可以用 adapter 将不可变服务包裹起来, 并符合目标的 interface
应用步骤重点
- 找到至少 2 个接口不兼容的类, 1 个是不可变的服务类, 一个是调用方需要的参数类
- 抽象一个调用方需要的 interface , 行为包含所有使用到第三方服务的行为, 隐含的是 compsite 模式
- 创建 adapter 类
- adapter 类加一个字段来保存第三方服务的实例
- adapter 类 实现 interface 所有方法, 并在实现过程中,调用第三方服务, 对其兼容
- 调用方使用 adapter 实例, 在需要调用第三方的地方