概述
将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无从在一起工作的两个类能够在一起工作
类图
角色
- 目标角色(target)
该角色定义要转换成的目标接口。 - 源角色(Adaptee)
需要被转换成目标角色的源角色 - 适配器角色(Adapter)
该角色是适配器模式的核心,其职责是通过继承或是类关联的方式,将源角色转换为目标角色。
示例
Adaptee.java
1 | public class Adaptee{ |
Target.java
1 | public interface Target{ |
Adapter.java
1 | public class Adapter extends Adaptee implements Target{ |
Client.java
1 | public class Client{ |
应用
优点
- 适配器模式可以让两个没有任何关系的类在一起运行。
- 增加了类的透明性
- 提高类的复用度
- 增强代码的灵活性
场景
使用适配器的典型场景:修改一个已经投产中的系统时,需要对系统进行扩展,此时使用一个已有的类,但这个类不符合系统中的接口,这时使用适配器模式是最合适的,它可以将不符合系统接口的类进行转换,转换成符合系统接口的、可以使用的类。