我们目前有一个问题,我们的主类GameController被拉到游戏中的每个后端文件中。我们想知道这个问题的常见解决方案是什么。
下面是关于游戏架构的更多信息。这个游戏是一个棋盘游戏,所以大约90-95%的时间没有发生任何事情,所以游戏的设置更像是一个rest API。它等待用户提示,当接收到时,将msg分发到游戏的相应组件,并执行适当的逻辑。没有大的更新循环,只在提示时执行逻辑。
问题是,当这个msg在系统中级联时,GameController更像是系统之间的中继点。它决定了节点之间的通信方式,以便所有游戏组件都能正确更新。问题是它创建了这个系统,所有新/旧的类都包含指向parentGame的指针,所以GameController无处不在。
有没有什么简单的架构解决方案可以避免让每个类都包含指向parentGame的指针?这一定是一件坏事吗?
一些示例代码:
class GameController {
bank: Bank
action: Action
...
}
class Bank {
parentGame: GameController
constructor(game: GameController) {
this.parentGame = game
}
}
class Action {
parentGame: GameController
constructor(game: GameController) {
this.parentGame = game
}
}发布于 2020-10-13 14:16:32
我不认为这是一件坏事,但是你可以通过将它包装在中间的某种事件机制中来清理它-换句话说,pub/sub可能会给你一些你想要的解耦。
它不一定是通过外部消息传递服务进行通信的任何东西--这只会带来不必要的开销。Observer Pattern出现在我的脑海中。
https://stackoverflow.com/questions/64327064
复制相似问题