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

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.xdnf.cn/news/17213.html

相关文章:

  • 深入理解VideoToolbox:iOS/macOS视频硬编解码实战指南
  • TDSQL GTS文件说明
  • cAdvisor 容器监控软件学习
  • Pygame音频播放的最简框架代码示例
  • Java选手如何看待Golang
  • 质子试验:守护芯片安全的关键防线
  • Java 大视界 -- 基于 Java 的大数据分布式计算在气象灾害数值模拟与预警中的应用(388)
  • 基于Go的抗封禁爬虫引擎设计
  • 一文可视化分析2025年6月计算机视觉顶刊IJCV前沿热点
  • Java 大视界 -- Java 大数据机器学习模型在金融风险传染路径模拟与防控策略制定中的应用(387)
  • 十三、抽象队列同步器AQS
  • JAVA基础-I/O
  • el-image-viewer组件在el-table使用时层级异常问题解决
  • Vue3 基本语法
  • 【Android笔记】Android 自定义 TextView 实现垂直渐变字体颜色(支持 XML 配置)
  • 【密码学】6. 消息认证和哈希函数
  • latex in overleaf快速通关论文排版
  • vue3 el-select 加载触发
  • list类
  • 设计模式中的行为模式
  • 【Unity输入系统】自定义与双击不冲突的单击Interaction
  • 零基础-动手学深度学习-9.3. 深度循环神经网络
  • 深度学习(2):自动微分
  • 数据结构——栈、队列
  • STM32——STM32CubeMX
  • Keil MDK-ARM V5.42a 完整安装教程
  • Git Status 命令深度指南:洞悉仓库状态的核心艺术
  • 【YOLOv8改进 - C2f融合】C2f融合SFS-Conv(空间 - 频率选择卷积)提升特征多样性,同时减少参数和计算量
  • cuda编程笔记(13)--使用CUB库实现基本功能
  • 一个自动定位并查询天气的工具(c语言)