news 2026/4/16 17:05:15

第 10 篇:装饰器模式 (Decorator) —— 给数据流“加特技”

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 10 篇:装饰器模式 (Decorator) —— 给数据流“加特技”

专栏导读:装饰器模式允许向一个现有的对象添加新的功能,同时又不改变其结构。在嵌入式 C 语言中,这通常表现为“接口的层层包裹”。它是实现中间件(Middleware)和协议栈分层处理(Layering)的核心思想。


1. 场景还原 (The Pain)

假设你有一个UART_Send函数,负责发日志。

菜鸟的写法:修改原始代码

// UART.c
void UART_Send(uint8_t* data, int len) {
    // 需求1:产品经理说要加时间戳
    printf("[%d] ", HAL_GetTick());
    
    // 需求2:安全团队说数据要异或加密一下
    for(int i=0; i<len; i++) data[i] ^= 0xA5;

    // 需求3:硬件组说串口 buffer 小,要压缩一下
    // ... 压缩逻辑 ...

    // 终于发送
    HAL_UART_Transmit(&huart1, data, len, 100);
}

架构师的审视

  1. 违反开闭原则:每次加

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/15 16:13:05

开题报告_基于Python的网络爬虫的设计与实现

目录研究背景与意义研究目标技术路线创新点预期成果参考文献项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作研究背景与意义 随着互联网数据爆炸式增长&#xff0c;网络爬虫成为高效获取结构化信息的关键技…

作者头像 李华
网站建设 2026/4/16 13:50:09

WordPress如何实现WORD文档图片的无损保存至博客?

要求&#xff1a;开源&#xff0c;免费&#xff0c;技术支持 博客&#xff1a;WordPress 开发语言&#xff1a;PHP 数据库&#xff1a;MySQL 功能&#xff1a;导入Word,导入Excel,导入PPT(PowerPoint),导入PDF,复制粘贴word,导入微信公众号内容,web截屏 平台&#xff1a;Window…

作者头像 李华
网站建设 2026/4/15 21:55:04

Word表格题注自动设置全攻略

基础设置&#xff1a;自动为表格添加题注打开Word选项中的高级设置&#xff0c;找到插入题注相关配置。 通过引用选项卡中的插入题注功能&#xff0c;选择自动插入题注选项。 勾选Microsoft Word表格&#xff0c;设置标签为"表"并确定位置为所选项目上方。自定义题注…

作者头像 李华
网站建设 2026/4/16 11:05:43

MongoDB 分布式存储与查询优化:从副本集到分片集群

MongoDB 作为高性能文档型 NoSQL 数据库&#xff0c;凭借灵活的 schema、高并发读写、分布式扩展能力&#xff0c;成为大数据量、高并发场景的核心存储方案。但默认配置下&#xff0c;MongoDB 存在索引缺失导致查询缓慢、分片键选择不当引发数据倾斜、事务一致性难保障、副本集…

作者头像 李华
网站建设 2026/4/16 11:11:37

摆脱论文困扰!千笔,深得人心的AI论文工具

你是否曾为论文选题发愁&#xff0c;反复修改却仍不满意&#xff1f;面对复杂的格式要求和查重压力&#xff0c;是不是感到力不从心&#xff1f;对于MBA学生而言&#xff0c;论文不仅是学术能力的体现&#xff0c;更是毕业的关键一环。而如今&#xff0c;有了千笔AI&#xff0c…

作者头像 李华