定义

  • 定义一个类的接口转化成客户期望的另一个接口 (适配者和目标类),使得原本接口不兼容的类可以一起工作。
  • 隶属于结构模式

应用场景

  • 已存在的类,它的方法和需求不匹配时(方法结果相同或相似)
  • 不同场景、不同厂家造成功能类相似接口不相同的解决方案

优点

  • 能提高类的透明性和复用,现有的类复用但不需要改变
  • 目标类和适配器类解耦,提高程序的扩展性
  • 符合开遍原则

缺点

  • 适配器编写的时候需要全面考虑,可能会增加代码复杂性
  • 增加系统代码可读难度

适配器模式扩展

  • 对象适配器:使用委托机制
  • 类适配器:通过类继承

适配器和外观模式

  • 两者都是对现有的类进行封装,外观模式定义了新的接口,而适配器模式是复用原有的接口。适配器是使得两个已有的接口协同工作,而外观则是在现有的系统中提供一个访问入口。