Java 事件系统排序问题
在我当前的项目中,我们使用的是无优先级传播事件的事件系统。我的意思正是。问题是调用事件时没有优先级,因此这意味着侦听类按照添加到侦听器容器的顺序触发其“on message”代码 它有时会导致难以预测的分析结果Java 事件系统排序问题,java,events,design-patterns,Java,Events,Design Patterns,在我当前的项目中,我们使用的是无优先级传播事件的事件系统。我的意思正是。问题是调用事件时没有优先级,因此这意味着侦听类按照添加到侦听器容器的顺序触发其“on message”代码 它有时会导致难以预测的分析结果 您知道有任何现有的解决方案可以“很好地”处理事件排序吗?在侦听器类中添加一种依赖性标志。也就是说,假设调用了侦听器A,它依赖于侦听器B,然后让B先执行。类似地,您可以在所有侦听器类中设置依赖条件,从而创建所需的层次结构 请确保不要添加循环依赖项或小心处理它。在侦听器类中添加一种依赖项标志
您知道有任何现有的解决方案可以“很好地”处理事件排序吗?在侦听器类中添加一种依赖性标志。也就是说,假设调用了侦听器A,它依赖于侦听器B,然后让B先执行。类似地,您可以在所有侦听器类中设置依赖条件,从而创建所需的层次结构
请确保不要添加循环依赖项或小心处理它。在侦听器类中添加一种依赖项标志。也就是说,假设调用了侦听器A,它依赖于侦听器B,然后让B先执行。类似地,您可以在所有侦听器类中设置依赖条件,从而创建所需的层次结构
请确保不要添加循环依赖项或小心处理。优先级阻止队列可能会对您有利。请确保您的事件执行具有可比性,事件调度程序线程每次都消耗最高优先级的事件。优先级阻塞队列可能会对您有利。让您的事件实现具有可比性,事件调度程序线程每次都消耗最高优先级的事件。对事件进行优先级排序是通往地狱的高速公路。没有。 您需要跟踪哪些对象需要什么优先级。那你就没有优先权了。接下来,您意识到您已经将相同的依赖项(priority constants类)硬编码到100个类中,并将它们完全绑定在一起。嗯,也许不是,但陷阱很多,也不幽默。 你必须考虑你想要实现的目标: 您希望对流程执行序列进行排序。它与事件没有任何关系,只不过这些过程是由事件触发的这一完全武断的事实 有许多解决方案:
优先处理事件是通往地狱的高速公路。没有。 您需要跟踪哪些对象需要什么优先级。那你就没有优先权了。接下来,您意识到您已经将相同的依赖项(priority constants类)硬编码到100个类中,并将它们完全绑定在一起。嗯,也许不是,但陷阱很多,也不幽默。 你必须考虑你想要实现的目标: 您希望对流程执行序列进行排序。它与事件没有任何关系,只不过这些过程是由事件触发的这一完全武断的事实 有许多解决方案: