定义

将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。适配器模式分为类结构型模式和对象结构型模式两种,前者类之间的耦合度比后者高,且要求程序员了解现有组件库中的相关组件的内部结构,所以应用相对较少些。

结构

主要角色:

  1. 目标(Target)接口:当前系统业务所期待的接口,它可以是抽象类或接口。
  2. 适配者(Adaptee)类:它是被访问和适配的现存组件库中的组件接口。
  3. 适配器(Adapter)类:它是一个转换器,通过继承或引用适配者的对象,把适配者接口转换成目标接口,让客户按目标接口的格式访问适配者。

类适配器模式的结构
适配器模式(Adapter Pattern) - 图1
对象适配器模式的结构图
适配器模式(Adapter Pattern) - 图2

应用

基本用法

  1. // 类结构
  2. public class Adaptor extends Adaptee implements ITarget {...}
  3. // 对象结构
  4. public class Adaptor implements ITarget {
  5. private Adaptee adaptee;
  6. ...
  7. }

封装有缺陷的接口设计

统一多个类的接口设计

替换依赖的外部系统

兼容老版本接口

适配不同格式的数据

Java 日志

Slf4j不仅仅提供了统一的接口定义,还提供了针对不同日志框架的适配器。