一、模式动机
通常,客户类(client of class)通过类的接口访问它提供的服务。有时现有的类(existing class )可以提供客户类的功能需要,但是它所提供的接口不一定是客户类所期望的。这是由于现有的接口名称与客户类所查找的不同等诸多不同原因导致的。
在这种情况下, 现有的接口需要转化 (convert) 为客户类期望的接口,这样保证了对现有类的重用。适配器模式(Adapter Pattern)可以完成这样的转化。
二、模式定义
适配器模式(Adapter Pattern): 将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
三、模式结构
四、参与者
- Target:目标抽象类
- Adapter:适配器类
- Adaptee:适配者类(被适配)
- Client:客户类
五、示例代码
package design.pattern;
abstract class Player {
protected String name;
public Player(String name) {
this.name = n