在我当前的项目中,我们使用事件系统来传播没有优先级的事件。我的意思是。问题在于没有优先级调用事件,所以它意味着监听类将它们添加到侦听器容器中以激发他们的“消息”代码。事件系统订购问题
它可能会导致分析结果有时难以预测。
您是否知道任何现有解决方案能够以“好方法”处理事件的排序?
在我当前的项目中,我们使用事件系统来传播没有优先级的事件。我的意思是。问题在于没有优先级调用事件,所以它意味着监听类将它们添加到侦听器容器中以激发他们的“消息”代码。事件系统订购问题
它可能会导致分析结果有时难以预测。
您是否知道任何现有解决方案能够以“好方法”处理事件的排序?
优先事件是地狱之路。没有字面意思。 您需要跟踪哪些对象需要什么优先级。那么你会用完优先事项。接下来你意识到你已经将相同的依赖关系(优先级常量类)硬编码到了100个类中,并且将它们全部绑定在一起。也许不是,但是陷阱很多,而不是幽默。 你必须看看你想实现什么: 你想要订购流程执行顺序。除了完全任意的事实,即事件触发这些过程外,它与事件无关。
解决方法有很多:
在监听器类中添加一个排序依赖标志。这是假设监听者A被调用,它对监听者B有依赖性,然后让B首先执行。同样,您可以在所有监听器类中放置依赖条件,从而创建所需的层次结构。
只要确保您不要添加循环依赖或仔细处理它。
PriorityBlockingQueue
可能会帮你。使你的事件实现可比较,并且事件分派器线程每次都消耗最高优先级的事件。