我在处理一个小型应用程序时遇到了代码设计问题。(顺便说一句,我是初学者)
在功能方面,有一张桌子列表,每张桌子有 2 个座位。如果两个玩家坐在同一张桌子上,那么游戏就开始了。
对于这一部分,我有一个表控制器、一个表模型和一个游戏状态模型(创建游戏状态意味着游戏已经开始)。
当用户坐下时,它会触发一个由表格控制器处理的 ajax 请求,该请求会调用表格模型中的适当方法进行坐下。如果桌子模型发现两个座位都坐满了,游戏就开始了,这是棘手的部分。
我不想让表格模型调用游戏状态模型,因为它感觉很混乱,并且以后跟踪谁调用游戏状态模型可能会变得困难。所以我让表模型返回一个 :success=>true 哈希给表控制器,表控制器决定是否调用游戏状态模型。
但后来我意识到我正在将逻辑放入控制器中,根据 Rails 3 Way,这是一个禁忌。
比我更有经验的人能告诉我什么可以做得更好吗?
我也遇到“如果用户断开连接则放弃游戏”的问题。目前,用户拉动表控制器是为了让我的应用知道他仍然连接。让那部分处理游戏没收似乎很尴尬和耦合。
此外,我让 javascript 代码为每种类型的资源执行一次 setInterval 拉取,以尝试保持模块化。但结果,我每间隔发出 6-7 个不同的 AJAX 请求。这似乎效率低下。