news 2026/4/23 12:09:24

第 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/18 13:37:11

基于宝塔 + Docker + MinIO + PicGo 的企业级自建图床方案实战

文章目录 基于宝塔 Docker MinIO PicGo 的企业级自建图床方案实战一、系统架构概览二、前置条件三、安装 MinIO&#xff08;宝塔 Docker&#xff09;1. 搜索并安装 MinIO2. 参数说明&#xff08;关键&#xff09; 四、MinIO 控制台初始化1. 创建对象桶2. 创建访问密钥3. 设置…

作者头像 李华
网站建设 2026/4/23 10:48:08

开题报告基于微服务架构的安家租房平台的设计与实现

目录微服务架构的安家租房平台设计背景平台核心功能模块微服务架构技术实现关键技术挑战与解决方案预期成果与创新点项目技术支持可定制开发之功能亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作微服务架构的安家租房平台设计背景 随着…

作者头像 李华
网站建设 2026/4/8 2:20:06

闭眼入!8个一键生成论文工具测评:本科生毕业论文+科研写作全攻略

在当前学术研究日益数字化的背景下&#xff0c;本科生在撰写毕业论文和进行科研写作时&#xff0c;面临着选题难、文献检索效率低、格式规范复杂等多重挑战。为了帮助学生更高效地完成学术任务&#xff0c;我们基于2026年的实测数据与用户反馈&#xff0c;对市面上主流的AI写作…

作者头像 李华