gpt4 book ai didi

java - 与 Akka Actor 特性混合与基类发生冲突

转载 作者:太空宇宙 更新时间:2023-11-04 07:38:04 25 4
gpt4 key购买 nike

我正在将 Akka 框架与 jMonkeyEngine (jME3) 一起用于我的小 scala/java 游戏。通过调整一些Akka dispatcher magic我设法在与 jME3 的主循环线程相同的线程中运行专用参与者。为了使 Actor 能够访问类 SimpleApplication 的 protected 变量(应该扩展该变量以使用 jME3 创建游戏),我认为创建一个继承 class SimpleApplication 并混合 trait Actor 的类会很巧妙。像这样的事情:

JmeActor extends SimpleApplication with Actor

问题在于 SimpleApplication 和 Actor 都有一个相互冲突的上下文变量。目前,我已将 SimpleApplication 的 context 变量重命名为 jmeContext 并重新编译了 jME3。结果工作得很好,但对我来说,这个设计似乎被破坏了,因为 jME3(甚至 Akka)的任何进一步版本都将要求我再次手动进行此重构。开发团队甚至有可能(尽管不太可能)进一步修改 SimpleApplication,从而使这种冲突避免技术变得更加困难。

有人能找到一个简单的解决方案吗?

最佳答案

我的直觉表明,将 Actor 实例与如此丰富的类(如游戏引擎的“主”类)紧密结合可能不是一个好的设计选择。我建议对 SimpleApplication 进行子类化,这样您需要的所有功能都可以通过公共(public)方法公开,然后只需在您的 Actor 中保留对该功能的引用即可;我的猜测是,您希望能够通过向 Actor 发送消息来影响游戏引擎,从而启用 Actor 。

关于java - 与 Akka Actor 特性混合与基类发生冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497128/

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