ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

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

第 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. 违反开闭原则:每次加

返回列表