ARTICLE · 1256852
《从源码搭建嵌入式软件框架》03|模块互相
《从源码搭建嵌入式软件框架》03|模块互相
《从源码搭建嵌入式软件框架》03|模块互相
代码按职责分好目录后,新问题就来了:甲要用乙,乙又想通知甲。难道最后只能互相依赖?
先别急着删头文件。模块之间有来有往,不一定代表构建依赖形成了环。关键是先把箭头含义说清楚。
这里常混用三种关系:构建依赖、运行调用和消息流向。看到“通知回去了”,就认定构建依赖也反了,这锅不能乱扣。
比如公共流程要生成资源列表,具体选择由上层策略决定。公共流程只管按标识查找、调用约定的入口、检查结果。它压根不知道上层函数的具体名字。
再比如发布订阅。发布者只知道事件标识和数据,根本不认识接收者的处理函数。新增接收者时,登记另一个处理函数就行,完全不用改发布者。
所以发现互相依赖,先查三件事:是真正的环,还是把调用和消息误画成了依赖?双方有没有把本该隐藏的细节公开了?接线代码有没有混进通用主体?
依赖不是坏事。我们真正想减少的是不必要的直接联系,以及说不清责任的联系。
原文《从源码搭建嵌入式软件框架》03|模块互相依赖怎么办?先把依赖方向画清楚
作者提示: 个人观点,仅供参考
广东,4小时前,















































































