设计模式之旅8--适配器模式

2018-07-15  本文已影响106人  小楠总

1. 定义

适配器模式:把一个类的接口变换为客户端所期待的另一种接口,从而解决接口不兼容问题。

适配器模式分为:类适配器模式、对象适配器模式,UML如下所示:

类适配器模式、对象适配器模式

2. 使用场景

3. 实现

3.1 类适配器

原角色:

public class Adaptee {
    //原有的业务逻辑
    public void volt220() {
        System.out.println("220V电压");
    }
}

目标角色:

public interface Target {
    void volt5();
}

public class ConcreteTarget implements Target {
    @Override
    public void volt5() {
        System.out.println("5V电压");
    }
}

适配器角色:

public class Adapter extends Adaptee implements Target {
    @Override
    public void volt5() {
        System.out.println("5V电压");
    }

    public void volt220() {
        super.volt220();
    }
}

场景类:

public class Client {
    public static void main(String[] args) {
        Target t1 = new ConcreteTarget();
        t1.volt5();

        Target t2 = new Adapter();
        t2.volt5();
    }
}
3.2 对象适配器(用得比较多)

适配器角色(核心不同时:适配器角色持有了原角色):

public class Adapter implements Target {

    private Adaptee mAdaptee;

    public Adapter(Adaptee adaptee) {
        mAdaptee = adaptee;
    }

    @Override
    public void volt5() {
        System.out.println("5V电压");
    }

    public void vol220() {
        mAdaptee.volt220();
    }
}

场景类:

public class Client {
    public static void main(String[] args) {
        Target t1 = new ConcreteTarget();
        t1.volt5();

        Target t2 = new Adapter(new Adaptee());
        t2.volt5();
    }
}

4. 优点

5. 缺点

上一篇下一篇

猜你喜欢

热点阅读