适配器模式

适配器模式

适配器模式属于结构模式中的一种。

适配器模式将一个类扥接口转化为客户希望的接口。适配器让接口彼此不兼容的类能互相协同工作。

适配器模式也经常被称为wrapper模式。

适配器模式主要含有几个实体:

  • Client :
  • Target : 客户端需要的类型接口;
  • Adapter : 将需要适配的类(Adaptee)转化为客户需要的目标类型(Target);
  • Adaptee : 需要被适配的类的类型接口;

通常适配器模式可以采用继承和组合两种方式实现,一种是Adapter实现Target和Adaptee接口,另一种是Adapter实现Target并依赖一个Adaptee实例。

UML类图

  • 继承模式

这里写图片描述

  • 组合模式

这里写图片描述

实例


public interface IAdaptee {
    void operation2();
}


public class AdapteeImpl implements IAdaptee {

    @Override
    public void operation2() {
        // TODO Auto-generated method stub
        System.out.println("AdapteeImpl is executing operation2()");
    }
}

public class Adapter extends AdapteeImpl implements ITarget {

    @Override
    public void operation1() {
        // TODO Auto-generated method stub
        operation2();
    }

}

public class Client {
    //客户端希望的接口类型
    interface ITarget {
        void operation1();
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Client client = new Client();
        // client.myFunction(new AdapteeImpl());//现在AdapteeImpl是引用的第三方库,不能修改,但是有想要使用这个类
        ITarget adapter = new Adapter();
        client.myFunction(adapter);
    }

    public void myFunction(ITarget obj) {
        obj.operation1();
    }

}

References

  1. 《设计模式:可复用面向对象软件的基础》
posted @ 2018-03-30 17:11  Spground  阅读(100)  评论(0编辑  收藏  举报