通过阅读CSDN博客,记录自己的理解:
根据适配器类与适配者类的关系不同,适配器模式可分为对象适配器和类适配器两种,在对象适配器模式中,适配器与适配者之间是关联关系;在类适配器模式中,适配器与适配者之间是继承(或实现)关系
解释:
Adaptee:适配者类
Target:目标抽象类
Adapter:适配器类
对象适配器
class Adapter extends Target { private Adaptee adaptee; //维持一个对适配者对象的引用 public Adapter(Adaptee adaptee) { this.adaptee=adaptee; } public void request() { adaptee.specificRequest(); //转发调用 } }
类适配器
类适配器需要继承适配者类,对于Java语言来说只能单继承,并且适配者类不能有final修饰。
class Adapter extends Adaptee implements Target { public void request() { specificRequest(); } }
缺省适配器是适配器模式的一种变体
当不需要实现一个接口所提供的所有方法时,可先设计一个抽象类实现该接口,并为接口中每个方法提供一个默认实现(空方法),那么该抽象类的子类可以选择性地覆盖父类的某些方法来实现需求,它适用于不想使用一个接口中的所有方法的情况,又称为单接口适配器模式。
在JDK类库的事件处理包java.awt.event中广泛使用了缺省适配器模式,如WindowAdapter、KeyAdapter、MouseAdapter等。