【发布时间】:2011-04-10 22:16:45
【问题描述】:
我有一个事件驱动架构,其中 A 等待 B 的更改,B 等待 C 的更改,C 等待 A 的更改,形成一个循环。
现在,如果 B 发生变化,则 A 向 C 触发一个事件,C 向 B 触发,B 向 B 触发,A 向 C 触发……无限。
我现在可以更改我的程序以不包含此循环,但我担心我可能会在以后将自己置于无法控制的角落。在设计基于事件的系统时如何防止此类事情发生?
【问题讨论】:
-
听起来像递归......你需要一个保护子句/基本案例来停止事件。
-
有趣,我也遇到了同样的事情。最后,我们不得不重构整个代码部分。
-
这听起来像是应用finite state machine 的完美场景。
标签: events architecture event-driven-design