定义

Adapter Pattern:将一个接口转换成客户希望的另一个接口,使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构模式,也可以作为对象结构模式。


UML示例

适配器模式

代码示例

对象适配器

// 适配者类
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 日
如果觉得我的文章对你有用,请随意赞赏