知识卡片

事件驱动模型的解耦效果与代价

专业/工作 · 619.e

内容

事件驱动模型由事件源(状态发生变化的对象)、事件(对这次变化的封装通知)、事件监听器(对通知做出反应的组件)三部分组成。它的关键特征是事件源完全不关心谁在监听、监听后会发生什么,发布者和订阅者之间没有直接调用关系,新增或删除一个监听方只需要改动监听器本身,发布方代码无需任何变化,由此获得很低的耦合度。但这种松耦合是双刃剑:因为没有显式的调用链,代码里看不出”发生这件事之后到底会触发哪些后续动作”,业务流程一旦变复杂,调试和追踪问题的成本会显著上升。发散:这正是”解耦”与”可追踪性”之间的经典权衡——耦合度和可读的调用链往往此消彼长,事件驱动只是把复杂度从”代码结构”转移到了”运行时行为”。

参考来源

《Spring Boot应用开发实战》第2章《使用Spring Boot构建Web应用程序》