设计模式之适配器模式
2020-06-04 04:25
78 查看
适配器模式
/** * 适配器,解决USB到Lighting不兼容的问题 */ /** * 适配器设计模式: * 适配器,其实是一个中间件,主要用来解决“接口不兼容”的问题而存在的。 * 当我们需要使用到某一个功能模块的时候,发现一个已经存在的模块和现有的模块之间不兼容。没有办法直接使用。 * 此时,可以做一个适配器,使用之前的不兼容的模块中的功能。 * * 案例: * U盘、键盘、鼠标,可以直接通过USB接口连接到电脑上。手机是不能直接通过USB接口连接到电脑。 * 如果想要把手机连接到电脑上,需要有一个转换器。这个转换器要求同时可以连接到电脑和手机。 * 这个转换器,就是一个适配器,解决了接口不兼容的设备之间进行数据传递。 */ public class Program { public static void main(String[] args) { // 需求:将U盘和手机都连接到电脑上,电脑输出每一个USB端口连接的设备信息 Computer computer = new Computer(); UDisk uDisk = new UDisk(); Phone phone = new Phone(); // 设备连接 computer.usb1 = uDisk; computer.usb2 = new Adapter(phone); // 输出电脑连接的设备信息 computer.showUSBDeviceInfo(); } } public class Adapter implements USB { // 设计一个另外一端,需要去适配的接口的引用 private Lighting lightingDevice; public Adapter(Lighting lightingDevice) { this.lightingDevice = lightingDevice; } @Override public String getDeviceInfo() { return lightingDevice.getDeviceInfo(); } } public class Computer { // 两个USB端口,可以连接USB设备 public USB usb1; public USB usb2; public void showUSBDeviceInfo() { System.out.println("USB1端口连接了: " + usb1.getDeviceInfo()); System.out.println("USB2端口连接了: " + usb2.getDeviceInfo()); } } public interface Lighting { /** * 获取Lighting设备的信息 * @return 设备信息 */ String getDeviceInfo(); } public class Phone implements Lighting { @Override public String getDeviceInfo() { return "iPhone 11 Pro Max"; } } public class UDisk implements USB { @Override public String getDeviceInfo() { return "KINSTON 256G"; } } public interface USB { /** * 获取USB设备的信息 * @return 设备信息 */ String getDeviceInfo(); }
相关文章推荐
- 设计模式之——适配器
- 适配器设计模式的简要概括
- JAVA设计模式之适配器
- 设计模式——适配器
- C++设计模式之适配器模式
- 设计模式: 自己手动写一适配器和外观模式
- 详解PHP设计模式之适配器模式
- 在王者荣耀角度下分析面向对象程序设计B中23种设计模式之适配器模式
- C++设计模式-适配器(转)
- Java设计模式之适配器设计模式(项目升级案例)
- 适配器设计模式---对象适配
- Android 设计模式之(三)观察者,适配器,桥接,组合模式
- 再看设计模式:代理、装饰和适配器
- java设计模式适配器模式
- JAVA设计模式系列之Adapter(适配器)-Java基础-Java-编程开发
- 二、建造者模式_适配器设计模式
- 设计模式学习: Adapter(适配器, Wrapper)模式
- Java设计模式透析之 —— 适配器(Adapter)
- 设计模式:接口适配(适配器,桥接,外观)
- 【ThinkingInJava】14、适配器设计模式 (2)