Design-Patterns-Adapter

Adapter (wrapper)

应用场景解释

  • 适合支持多继承的语言实现
  • 当前逻辑需要调用一个遗留系统,或者不可变的第三方服务. 且第三方服务签名不能直接被当前逻辑使用. 类型不匹配
  • 可以用 adapter 将不可变服务包裹起来, 并符合目标的 interface

应用步骤重点

  • 找到至少 2 个接口不兼容的类, 1 个是不可变的服务类, 一个是调用方需要的参数类
  • 抽象一个调用方需要的 interface , 行为包含所有使用到第三方服务的行为, 隐含的是 compsite 模式
  • 创建 adapter 类
  • adapter 类加一个字段来保存第三方服务的实例
  • adapter 类 实现 interface 所有方法, 并在实现过程中,调用第三方服务, 对其兼容
  • 调用方使用 adapter 实例, 在需要调用第三方的地方