专栏导读:在 C 语言中,函数调用通常是瞬时的。但在命令模式下,我们将“函数调用”封装成一个结构体对象(包含函数指针 + 参数)。这样一来,请求就被实体化了:你可以把它放进队列里排队执行(异步),存进 Flash 里以后执行(宏录制),甚至把刚才执行的命令反向操作一遍(撤销/Undo)。
1. 场景还原 (The Pain)
假设你正在做一个智能家居中控面板。
菜鸟的写法:硬编码的耦合
// Button_ISR.c void On_Key1_Pressed() {
// 痛点1:硬编码。按键和业务锁死。 // 如果想改键位,必须改代码重新编译。 Light_On(LIVING_ROOM); Curtain_Open(BALCONY); }
void On_Key2_Pressed() {
// 痛点2:无法复用。 // 类似的“开灯”逻辑在语音控制模块里又要写一遍。 Light_Off(LIVING_ROOM); }
架构师的审视
无法动态配置:用户不能自定义按键功能。
时空耦




