适配器模式(Adapter)

适配器可分为类适配器和对象适配器。其比较可参考 适配器模式之类适配器与对象适配器的区别及代码实现。本文只关注对象适配器。

对象适配器的UML图如下:
在这里插入图片描述
对象适配器模式包含如下角色
Target(目标抽象类):定义客户所需接口,可以是接口、抽象类或者具体类
Adapter(适配器):继承实现Target,关联Adaptee,完成接口的转换
Adaptee(被适配者):定义存在的接口,被适配器适配
对象适配器的核心是适配器Adapter继承或者实现目标类Target,委派被适配者Adaptee(关联关系)完成任务

上述内容主要参考6大设计原则及23种设计模式

手写代码如下:

public interface Duck {
    public void quack();
}

public class Dog {
    public void bark(){
        System.out.println("wangwangwang");
    }
}

public class FakeDuck implements Duck {
    private Dog dog;

    public FakeDuck(Dog dog) {
        this.dog = dog;
    }

    @Override
    public void quack() {
        dog.bark();
    }
}

public class Client {
    public static void main(String[] args){
        Dog dog = new Dog();
        Duck duck = new FakeDuck(dog);
        duck.quack();
    }
}

结果打印
wangwangwang
上例中Target是Duck, Adaptee是Dog, FakeDuck则是Adapter, 让狗装鸭叫。。

适配器模式的实例包括:
java.util.Arrays#asList() 可以把数组类型转换为 List 类型;
SpringMVC中的HandlerAdapter
----《Java开发能力-设计模式》

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读