在服务器应用程序中存在“文章”,“工作”,“工人”和
等模型例如,在有这些模型的服务器端应用程序中:
还有像开始工作这样的动作,它可以执行以下操作:
现在我的问题是:我应该把上述逻辑放在哪里?
我是否应该有一个名为“jobs / start”的控制器来调用模型“job.start(args ...)”上的方法。在这个模型方法中,它调用“product.increaseRequestedQuantity(args ...)”和“worker.setBusy()”
我应该有一个名为“jobs / start”的控制器调用“job.start(args ...)”然后“product.increaseRequestedQuantity(args ...)”和“worker.setBusy()”
我真的不知道哪个是最佳实践,首先模型知道其他模型,但逻辑是核心。在第二种情况下,模型不会直接知道彼此,但逻辑更加分散。在作业上还有一个名为“start”的方法,人们会认为它会在应用程序级别启动一个作业(这意味着它会改变产品和工人模型),但会影响模型级别(意味着只会更改作业模型,不改变产品和工人模型。)
您对此事和这种关注点的分离有何看法?
这适用于使用Rails的人,即使我不是特别谈论Rails(我自己的框架基于服务+ node.js中的模型,其中服务就像Rails中的控制器),或任何其他MC框架,(注意我不关心视图,因为服务必须只导出数据。视图只在客户端请求数据)。
我已经阅读过关于Should rails models be concerned with other models for the sake of skinny controllers?的内容,但如果可能的话,我想要更深入的解释,也可以在这个确切的主题上使用书籍/链接参考。
感谢您抽出时间阅读我的问题(: