gpt4 book ai didi

java - 事件系统排序问题

转载 作者:行者123 更新时间:2023-11-29 03:35:58 24 4
gpt4 key购买 nike

在我当前的项目中,我们使用事件系统来传播没有优先级的事件。我的意思是准确的。问题是事件的调用没有优先级,所以这意味着监听类会触发它们的“on message”代码,以便将它们添加到监听器容器中。

有时会导致难以预测的结果分析。

您是否知道任何现有的解决方案可以“很好地”处理事件的排序?

最佳答案

确定事件的优先级是通往 hell 的高速公路。没有字面意思。您需要跟踪哪些对象需要哪些优先级。然后你就会用完优先级。接下来,您意识到您已经将相同的依赖项(优先级常量类)硬编码到 100 个类中,并且确实将它们全部绑定(bind)在一起。好吧,也许不是,但陷阱很多而且不幽默。您必须查看要实现的目标:您想要订购流程执行顺序。它与事件无关,除了这些过程是由事件触发的完全任意的事实。

有很多解决方案:

  1. 使用finite state machine ,迄今为止最通用、最清晰的解决方案。
  2. 隔离需要按特定事件触发的顺序执行的进程,并以某种方式将它们排队,例如使用 command pattern并通过事件触发执行队列中的所有命令。或者使用 promises也是一种可能。
  3. 正确的事件链接方式:如果 ClassA 需要响应事件 A,但仅在 ClassB 完成其处理之后,则 ClassA 不应响应事件 A,而应响应从 ClassB 分派(dispatch)的事件。最不受欢迎的是,嘿,有时候你需要快点。

关于java - 事件系统排序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15550202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com