设计模式之适配器模式

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

结构比较简单,有一个目标接口,需要将原始类的操作,通过适配器类转换成目标接口的操作。适配器类既要实现目标接口,也要继承原始类。这里我们来举一个变压器的例子。

java 复制代码
public interface Target {
    double getTargetVoltage();
}

public interface OriginalInterface {
    double getVoltage();
}

public class Original implements OriginalInterface {
    @Override
    public double getVoltage() {
        return 220;
    }
}

public class Adaptor implements Target {
    private OriginalInterface originalInterface;
    public Adaptor(OriginalInterface originalInterface) {
        this.originalInterface = originalInterface;
    }
    @Override
    public double getTargetVoltage() {
        return originalInterface.getVoltage() / 44;
    }
}

public class Demo {
    public static void main(String[] args) {
        Original originalInterface = new Original();
        Adaptor adaptor = new Adaptor(originalInterface);
        double targetVoltage = adaptor.getTargetVoltage();
        System.out.println("源电压: " + originalInterface.getVoltage());
        System.out.println("目标电压: " + targetVoltage);
    }
}

如果大家需要视频版本的讲解,可以关注我的B站:

九、设计模式之适配器模式精讲

相关推荐
蓝瑟4 小时前
告别重复造轮子!业务组件多场景复用实战指南
前端·javascript·设计模式
Arva .6 小时前
讲一下 Spring 中用到的设计模式
java·spring·设计模式
繁华似锦respect7 小时前
lambda表达式中的循环引用问题详解
java·开发语言·c++·单例模式·设计模式·哈希算法·散列表
星月IWJ11 小时前
领域驱动设计学习
java·学习·设计模式
_dindong11 小时前
Linux网络编程:Reactor反应堆模式
linux·服务器·网络·设计模式·php
雨中飘荡的记忆12 小时前
Step Builder模式实战
java·设计模式
Eren7Y琳12 小时前
开箱即用构建应用环境:openEuler易获得性深度验证
redis·设计模式·架构
Unstoppable2212 小时前
八股训练营第 39 天 | Bean 的作用域?Bean 的生命周期?Spring 循环依赖是怎么解决的?Spring 中用到了那些设计模式?
java·spring·设计模式
闲人编程13 小时前
微服务API网关设计模式
python·缓存·微服务·设计模式·系统安全·api·codecapsule
__万波__14 小时前
二十三种设计模式(八)--装饰器模式
java·设计模式·装饰器模式