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

适配器模式:兼容不兼容接口

将一个类的接口转换成客户端期望的另一个接口,解决接口不兼容问题。

代码示例:

// 目标接口(客户端期望的格式)
interface ModernPrinter {void printDocument(String text);
}// 被适配的旧类(不兼容)
class LegacyPrinter {void print(String message, int copies) {for (int i = 0; i < copies; i++) {System.out.println("旧类打印: " + message);}}
}// 适配器类(转换接口)
class PrinterAdapter implements ModernPrinter {private final LegacyPrinter legacyPrinter = new LegacyPrinter();@Overridepublic void printDocument(String text) {// 调用旧类方法并适配参数legacyPrinter.print(text, 1); // 默认打印1份}
}// 客户端调用
public class Client {public static void main(String[] args) {ModernPrinter printer = new PrinterAdapter();printer.printDocument("你好适配器!"); }
}

使用场景:整合第三方库/遗留代码、系统接口升级时兼容旧模块

优点:复用现有代码;灵活性高

缺点:过度使用会导致系统结构混乱 

http://www.dtcms.com/a/277784.html

相关文章:

  • C++--unordered_set和unordered_map的使用
  • C#接口进阶:继承与多态实战解析
  • DVWA靶场通关笔记-XSS DOM(Medium级别)
  • 在人工智能自动化编程时代:AI驱动开发和传统软件开发的分析对比
  • 如何自动化处理TXT日志,提升工作效率新方式
  • Autotab:用“屏幕录制”训练AI助手,解锁企业级自动化新范式
  • Springboot实现一个接口加密
  • 免费证件照工具,一键制作超方便
  • Linux驱动开发2:字符设备驱动
  • NumPy实战指南:解锁科学计算的超能力
  • 5.适配器模式
  • Chrome浏览器此扩展程序已停用,因为它已不再受支持,插件被停用解决方案
  • 解决 Python 跨目录导入模块问题
  • Ubuntu 设置自动挂载 SD 卡,扩容根目录
  • 进程互斥的硬件实现方法
  • Python----大模型(Langchain-Prompt提示词)
  • 快速搭建Maven仓库服务
  • 大话数据结构之 <顺序表> (C语言)
  • 学习:JS基础[5]对象
  • 【SpringAI Alibaba】基于 Redis 实现连续对话与向量存储
  • VsCode的LivePreview插件应用
  • [Java恶补day41] 226. 翻转二叉树
  • 基于springboot的大学公文收发管理系统
  • AB实验评估指标体系之【实验评估指标体系】
  • 015_引用功能与信息溯源
  • python 字典(Dictionary) vs. 集合(Set):它们是如何做到快速查找的?为什么字典的键(key)必须是不可变的?
  • S7-1200 与 ET200SP:PROFINET 设备关键数据 IP 地址、MAC 地址及 MRP 环状态获取
  • Datawhale AI 夏令营2025科大讯飞AI大赛<夏令营:用AI做带货视频评论分析>
  • 什么是渐进式框架
  • OpenVela 之 UI 应用开发