设计模式--适配器模式

Java工程源码

类图

这里写图片描述


定义
将一个类的接口变换成客户端期待的另一种接口,从而使原本因接口不匹配而无法一起工作的两个类能够一起工作


优点
- 适配器角色可以让两个没有任何关系的类在一起运行
- 增加了类的透明性, target 目标角色具体实现委托给了源角色,这对高层模式是透明的
- 提高了类的复用度,源角色在原有系统中还是可以正常使用
- 灵活性非常好 适配器类似于一个灵活的构件,随时可以卸载


使用场景
在开发阶段不用考虑它,主要是在扩展应用中


扩展
对象适配器类图如上图所示,它与类适配器的区别是:类适配器是类间继承,对象适配器是对象间的合成 ( 关联 ) 关系。适配器模式是一个补偿模式,通常用来解决接口不相容的问题


目标角色

public interface Target {
    // 目标角色有自己的方法
    void request();
}

目标角色实现类

public class ConcreteTarget implements Target {
    @Override
    public void request() {
        System.out.println("目标角色 doSomething");
    }
}

原角色

public class Adaptee {
    // 原有的业务逻辑
    public void doSomething() {
        System.out.println("原角色 doSomething");
    }
}

适配器角色

public class Adapter extends Adaptee implements Target {
    @Override
    public void request() {
        super.doSomething();
    }
}

场景类

public class Client {
    public static void main(String[] args) {
        // 原有的业务逻辑
        Target target1 = new ConcreteTarget();
        // 目标角色执行方法
        target1.request();
        // 增加了适配器角色后的业务逻辑
        Target target2 = new Adapter();
        // 目标角色执行方法,但是实际执行的是原角色的方法
        target2.request();
        //Adapter把Adaptee变成了Target,并且保持了原始的业务逻辑
    }
}

运行结果

目标角色 doSomething
原角色 doSomething
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章