# 适配器


## ***接口隔离模式***

1. ***什么是接口隔离***
   - *在组件构建过程中, 某些接口之间直接的依赖 常常会带来很多问题 甚至根本无法实现*
   - *采用添加一层间接(稳定)接口, 来隔离本来互相紧密关联的接口是一种常见的解决方案*
2. ***典型模式***
   - *Façade*
   - *Proxy*
   - *Mediator*
   - *Adapter*

## ***动机***

1. *在软件系统中, 由于应用环境的变化, 常常需要将"一些现存的对象"放在新的环境中应用, 但是新环境要求的接口是这些现存对象所不满足的*
2. *如何应对这种"迁移的变化"? 如何既能利用现有对象的良好实现, 同时又能满足新的应用环境所要求的接口?*

## ***模式定义***

1. *将一个类的接口转换成客户希望的另一个接口*
2. *Adapter模式使得由于接口不兼容而不能一起工作的那些类可以一起工作*

## ***要点总结***

1. *Adapter模式主要应用于"希望复用一些现存的类, 但是接口又与复用环境要求不一致的情况", 在遗留代码复用、类库迁移等方面非常有用*
2. *GoF 23 定义了两种Adapter模式的实现结构, 对象适配器和类适配器*
   - *不推荐使用类适配器 因为类适配器用的是多继承的方法*
   - *推荐使用对象适配器 因为对象适配器使用的组合方法*
3. *Adapter模式的使用非常灵活, 不必拘泥于上述两种模式*
   - *例如 完全可以将Adapter模式中的现存对象作为新的接口方法参数, 来达到适配的目的*

