Loading... ## 定义 Adapter Pattern:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构模式,也可以作为对象结构模式。 ---------- ## UML示例 ![适配器模式](https://s1.ax1x.com/2020/05/21/YbFDfS.png) ---------- ## 代码示例 ### 对象适配器 ```java // 适配者类 public class Adaptee{ public void specificRequest(){ }; } // 目标类(可以是抽象类,接口或具体类) public class Target{ public void request(){ } } // 适配器类 public class Adapter extends Target{ // 保持对适配者对象的引用,即关联关系 private Adaptee adaptee; public Adapter(){ adaptee = new Adaptee(); } public void request() { adaptee.specificRequest(); } } // 客户端 public class Client { public static void main(String[] args) { Target a = new Adapter(); a.request(); } } ``` ### 类适配器 与对象适配器不同在于,其适配器和适配者之间的关系是继承关系,适配器和目标类(抽象角色)的关系是实现关系。 ### 双向适配器 对象适配器的一个特别情况:如果在适配器中同时包含对目标类和适配者类的引用,适配者可以通过它调用目标类的方法,目标类亦可以通过它调用适配者类的方法,那么该适配器就是双向适配器。 ---------- ## 缺省适配器 适配器模式的一个变体,应用广泛。 定义:当不需要实现一个接口所提供的所有方法,可先设计一个抽象类实现该接口,并为接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可以选择性地覆盖父类地某些方法来实现需求,它适用于不想使用一个接口中所有方法的情况。又称单接口适配器模式。 最后修改:2020 年 05 月 21 日 02 : 11 PM © 允许规范转载