所以我正在用python为一个基于网络的游戏创建后端。目前它是这样工作的......
WebSocket 处理程序接收消息...
WebSocket 处理程序调用消息处理程序...
消息处理程序调用游戏类函数...
游戏类调用其他类来更新信息。
这是高度耦合的,可能应该采用模型-视图-控制器格式。所以我最终要改变这一点。
基本上我希望它像这样工作。
控制器已打开一个 WebSocket 处理程序。
WebSocket Handler 返回到 Controller a (1?)。
控制器使用 (1?) 调用消息处理程序。
消息处理程序返回到控制器 a (2?)。
控制器使用 (2?) 调用模型。
模型将更新发送到适当的位置。
所以这里有两个问题。
首先,当我在 WebSocket Handler 中收到消息时,它是 Tornado 的 WebSocketHandler 的一个实例,我不确定如何将任何内容返回给 Controller。仅仅是因为这是不可能的吗?我是否必须在 WebSocket 处理程序和消息处理程序之间保持少量耦合?我知道我总是可以在 Controller 中调用一个函数,但这似乎不是一个实际的修复,只是更多的函数调用。
有没有办法在 python 中传递函数调用,同时跟踪它的参数?这将是执行此操作的最佳方式,但我认为它不是用 python 语言实现的。否则,我觉得最好的方法是返回一个字典,其中包含要调用的函数名称的字段和参数的字段。这当然是更多的代码。如果可以避免,我想这样做,但我不确定该采取的方向。
感谢您的提示,这是一个很大的重构,我真的很紧张从哪里开始。