适配器模式

一.适配器模式

1.1 定义

  • 将一个接口转换成客户希望的另一个接口.

1.2 角色

  1. 目标接口对象(Target):客户希望的另一个接口或具体类.
  2. 需要适配的类(Adaptee):现有的,不符合客户需求的接口或具体类.
  3. 适配器对象(Adapter):包装适配的对象,转换接口.

1.3 实现方式

  1. 类适配器(继承).
  2. 对象适配器(聚合).

二. 具体实现

2.1 创建目标接口及实现类

    public interface ITarget {
        void show();
    }
    public class Target implements ITarget{
        public Target(){
            System.out.println("create target...");
        }
        @Override
        public void show() {
            System.out.println(this.getClass().getSimpleName());
        }
    }

2.2 创建需要适配的接口及实现类

    public interface IAdaptee {
    }
    public class Adaptee implements IAdaptee{
    }

2.3 类适配器

    public class Adapter1 implements IAdaptee{
        ITarget target;
        public ITarget convert(IAdaptee adaptee){
            if(adaptee != null){
                target = new Target();
            }
            return target;
        }
    }

2.4 对象适配器

    public class Adapter2 implements ITarget,IAdaptee{
        @Override
        public void show() {
            System.out.println(this.getClass().getSimpleName());
        }
    }

2.5 调用

    public static void main(String[] args) {
        Adapter1 adapter1 = new Adapter1();
        ITarget target = adapter1.convert(new Adaptee());
        target.show();

        Adapter2 adapter2 = new Adapter2();
        adapter2.show();
    }

2.6 输出

    create target...
    Target
    Adapter2

三. 优缺点

3.1 优点

  • 灵活性好,提高了类的复用度.

3.2 缺点

  • 过多使用会使系统杂乱.

四. 源码


    https://github.com/Seasons20/DisignPattern.git

END


JadeQYuan
279 声望311 粉丝

知其然,知其所以然。。。