我试图理解模型上的“胖”与控制器上的“瘦”的概念,从我一直在讨论的内容来看,我有以下示例(取自 freenode 讨论):
问:关于 MVC 范式,它说 Fat 模型,skinny 控制器。我在这里想,如果我有很多方法(在控制器上)只使用几个抽象方法来 CRUD(在模型上),我是在创建一个胖控制器而不是一个模型吗?或者他们说,胖模型,参考返回的内容而不是输入的内容?那是我从未理解过的东西 =) 任何意见都表示赞赏!非常感谢
OBS1:我不是按模型做的,在控制器中,我只有控制模型的方法
OBS2:假设“checkIfEmailExists()”具有“john@hotmail.com”作为参数。该方法将从查询该参数是否存在于表中的模型方法中获取返回值,返回布尔值。如果为0,“checkIFemailExists()”将调用不同的模型方法,这个,他只是另一个抽象方法,执行更新操作。
OBS3:“checkIfEmailExists()”不只是一个控制器吗?他实际上并没有执行任何 CRUD,他只是在比较值等。这让我感到困惑,因为在我的脑海中这是一个控制器:S
注意:我想这不是最好的例子,因为说“检查是否存在”,听起来像是查询我的表操作
Q2:还有一个问题,假设我有一个视图表单,该电子邮件地址参数是从哪里发送的。你是说视图直接进入模型?
Q3:控制器不应该在他们之间行动吗?这就是范式
最后注:讨论结束,说我错了,希望没问题(我正在学习)。但是,那么,Q2 和 Q3 的正确答案是什么?
感谢您的关注