当前位置: 首页 > news >正文

设计模式 适配器模式

适配器模式

适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。

适配器模式的结构

适配器模式通常涉及以下几个角色:

  • 目标(Target):
    定义客户端所期望的接口。
  • 适配者(Adaptee):
    定义一个已经存在的接口,需要适配这个接口以便与目标接口兼容。
  • 适配器(Adapter):
    适配器类通过继承或组合的方式持有适配者的引用,并将适配者的接口转换为目标接口。

适配器模式的类型

适配器模式有两种主要类型:

类适配器模式:

适配器类通过继承适配者类和目标接口来实现。
期望实现接口, 我们 用 mobilePhone 来表示期望实现的接口信息

package AdapterModel;public interface Target {public String mobilePhone(String model);}

原有接口 实体信息, 现在这个 不适用于最新的信息, 最初这个接口只支持信息是 xiaomi2

package AdapterModel;public class mobileAdaptee {public String model(){return "xiaomi2";}
}

我们通过 实现我们期望的接口 并 继承原有的 接口信息 并 重新 处理,现在支持新款 xiaomi6

package AdapterModel;public class modelAdapter extends mobileAdaptee implements  Target{@Overridepublic String mobilePhone(String num) {String model = model();if("xiaomi".equals(num)){return model;}return "xiaomi6";}
}

信息 展现

package AdapterModel;public class Main {public static void main(String[] args) {Target target = new modelAdapter();String s = target.mobilePhone("xiaomi");System.out.println(s);String s1 = target.mobilePhone(null);System.out.println(s1);}
}

适配器类 Adapter 继承了 Adaptee 类,并实现了 Target 接口。
适配器类可以直接访问适配者类的所有方法。

对象适配器模式:

适配器类通过组合适配者对象来实现。
还是上面那个类, 现在在适配器里通过实现对象时同步创建

package AdapterModel;public class mobile1Adapter implements Target{private mobileAdaptee mobileAdaptee;public mobile1Adapter(mobileAdaptee mobileAdaptee){this.mobileAdaptee = mobileAdaptee;}@Overridepublic String mobilePhone(String model) {if("xiaomi".equals(model)){return mobileAdaptee.model();}return "xiaomi6";}
}

通过适配器组合实例对象,在实现对他的接口更新适配 实现跟上面效果一样

    package AdapterModel;public class Main {public static void main(String[] args) {
//            Target target = new modelAdapter();
//            String s = target.mobilePhone("xiaomi");
//            System.out.println(s);
//            String s1 = target.mobilePhone(null);
//            System.out.println(s1);Target target =new mobile1Adapter(new mobileAdaptee());String s = target.mobilePhone("xiaomi");System.out.println(s);String s1 = target.mobilePhone(null);System.out.println(s1);}}

适配器类 Adapter 实现了 Target 接口,并持有 Adaptee 类的一个实例。
适配器类通过组合适配者对象来实现适配。

适配器模式可以让你轻松地在现有系统中集成新组件,而无需修改现有代码。这有助于提高系统的灵活性和可维护性。


http://www.mrgr.cn/news/1360.html

相关文章:

  • 鸿蒙HarmonyOS开发:用户通知服务Noification的详细使用指南
  • sed awk 第二版学习(一)—— sed 与 awk 基本操作
  • 贝叶斯推理:分步指南
  • WPF-实现多语言的静态(需重启)与动态切换(不用重启)
  • 设计模式实战:数据分析系统的设计与实现
  • 2024新型数字政府综合解决方案(六)
  • C#中的多线程
  • 【数据结构】二叉树篇
  • 对react组件和组件化理解
  • Java项目集成RocketMQ
  • 《Docker:实现开发环境一致性与高效部署的利器》
  • 创建张量、张量的操作
  • Kafka运行机制(二):消息确认,消息日志的存储和回收
  • echarts渐变圆环进度条样式
  • jenkins pipline脚本 获取git分支
  • Snipaste 的一款替代工具 PixPin,支持 gif 截图、长截图和 OCR 文字识别,功能不是一点点强!
  • 虚幻5|角色武器装备的数据库学习(不只是用来装备武器,甚至是角色切换也很可能用到)
  • 《AI音频类工具之九——Stable Audio​ 》
  • TortoiseGit修改差异查看器为BeyondCompare
  • 网络丢包深度解析与优化:检测、诊断与减少策略