我是新来的阿卡和演员模式,因此我不知道它是否符合我的需求。阿卡模拟
我想创建一个模拟akka和数百万的实体(认为是域对象 - 后来的演员),可以互相影响。所以我们把模拟的结果看作是模糊的结果,我们有一个实体数组,其中每个实体都有一个速度,但是被实体前面的实体阻碍。当模拟开始时,每个实体应该移动n场,或者如果被其他场所阻挡,则移动更少的场。我们有多次迭代,最后我们有一个新的顺序。重复这些操作直到我们想看到领先实体的“快照”(在下一轮开始之前可能会被删除)。
所以我不明白,如果我可以创建这个用阿卡,因为:
是否有可能产生全球性清单,每个演员的位置,让他们知道在哪个位置他们,哪些是在他们面前? 据我了解,这违反了演员的封装。我可以把演员的位置放在演员身上,但是我怎样才能看到/通知演员周围的演员? 除此之外,全局列表将创建同步问题并影响性能,这与期望的行为完全相反(并且与akka /演员模式互补)
我错过了什么?我是否必须寻找另一种设计方法? 感谢您的建议。
更新:使用事件总线和分类器似乎也不是一种选择。指的的documentation:
“因此它并不适合用在订阅具有非常高的频率,来改变的情况下”
我们决定为我们的问题使用不同的解决方案。不过我认为你的建议模式听起来很有希望。也感谢n-body的参考。 – Dag 2012-06-20 15:24:43