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

c++注意点(15)----设计模式(桥接模式与适配器模式)

一、结构型设计模式

两者有点相似,都是为了做到解耦的功能。

适配器模式是一种结构型设计模式, 它能使接口不兼容的对象能够相互合作。

桥接模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。

二、适配器模式的实际项目案例

1. 串口设备驱动适配
  • 场景:旧设备的串口驱动函数为uart_send_byte(uint8_t data),新系统统一要求serial_transmit(uint8_t* buf, uint16_t len)接口。
  • 适配方式:编写适配器函数,将serial_transmit转换为对uart_send_byte的循环调用。
  • 作用:新系统无需修改即可兼容旧设备驱动。
2. 第三方库集成(如日志库)
  • 场景:项目原有日志接口为log_info(const char* msg),引入的第三方库日志函数为third_party_log(int level, const char* format, ...)
  • 适配方式:实现适配器log_info,内部调用third_party_log(INFO_LEVEL, "%s", msg)
  • 作用:项目代码无需修改,即可使用第三方日志库。

三、桥接模式的实际项目案例

1. LVGL(嵌入式 GUI 库)
  • 抽象层:控件逻辑(按钮、标签、列表等渲染规则、事件处理)。
  • 实现层:硬件接口(显示屏刷新disp_drv.flush、触摸输入indev_drv.read)。
  • 桥接方式:通过驱动结构体(lv_disp_drv_t)中的函数指针关联抽象层与实现层。
  • 作用:同一套 UI 逻辑可适配不同显示屏(OLED/LCD)和硬件平台(STM32/ESP32),新增硬件只需实现底层接口,无需修改 UI 逻辑。

四、一句话总结

  • 桥接模式是 “未雨绸缪”:在设计初期就分离可能变化的维度,让系统更灵活地应对未来扩展。
  • 适配器模式是 “亡羊补牢”:在系统集成时解决已有组件的接口冲突,让不兼容的代码协同工作。

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

相关文章:

  • 机器学习 SVM支持向量机
  • LintCode第433题-岛屿的个数
  • 【同余最短路】P2371 [国家集训队] 墨墨的等式|省选-
  • C5.2:如何利用BJT的区域进行稳定工作
  • 冠雅新品 | 以“无形之光”守护双眸,以“无声之智”浸润生活
  • 冷冻食材,鲜美生活的新选择
  • 深入理解OpenGL Shader与GLSL:基础知识与优势分析
  • 深度学习·Cascade-CLIP
  • Linux中的内核同步源码相关总结
  • 安科瑞EMS3.0:打造“零碳工厂”的智能能源神经中枢
  • 在 Mac 上安装 IntelliJ IDEA
  • 艾体宝产品 | 从“被看见”到“被信任”:GWI 协助洞察消费者,重构品牌认知
  • day21|学习前端vue3框架和ts语言
  • 二十八天(数据结构:图的补充)
  • 璞致电子 PZ-FH8052 高性能 FMC 子卡:超高速信号链的理想解决方案
  • Agent 开发进阶路线:从基础功能到自主决策
  • C++基础学习笔记
  • 如何在simulink中双击一个模块弹出一个exe?
  • SCI论文润色一站式服务
  • 机器学习模型在订单簿大单预测与应对
  • 线程池分析与设计
  • 【设计模式】访问者模式模式
  • Claude Code 实战场景解析:从代码生成到系统重构的典型应用案例
  • 修复C++14兼容性问题 逻辑检查
  • 控制建模matlab练习11:伯德图
  • 数据大集网:重构企业贷获客生态的线上获客新范式​
  • C++信息学奥赛一本通-第一部分-基础一-第2章-第5节
  • 亚马逊 Alexa + 广告整合:智能语音交互重构电商营销范式
  • AI日报 - 2025年08月08日
  • [科普] AI加速器架构全景图:从GPU到光计算的算力革命