2013-03-06 65 views
1

我听到很多意见,但是对于控制器中应该使用什么类型的逻辑有一个通用规则?控制器应该采用什么类型的逻辑? (MVC和Repository模式)

我使用知识库进行数据访问和更新,但是如何在控制器中更新动作方法中的模型参数(例如,FormCollection对象等),然后将其传递到存储库进行更新。

有没有明确的禁忌?

感谢

+0

不,有很多争议。最明智的是介于瘦身控制器和瘦身模式之间。没有其他的辩论可以背后。 Google Skinny控制器了解更多信息。我的建议是将其移交给Stack Exchange的程序员论坛。他们会更容易接受它。 – 2013-03-06 18:40:37

+0

谢谢,我会有一个谷歌,听说之前瘦的控制器 – 2013-03-06 19:10:31

回答

2

我通常设计的方式,使模型和视图之间的解耦控制,使他们可以无视对方的存在。

问题在于定义模型的职责是什么,以及对于界线这些问题,控制器的责任是什么。没有人会争辩说坚持一个实体进入数据库是控制器的一项任务,但是如果我们谈论验证,事情会变得更具争议性。

对于输入验证,我个人的方法是在控制器端执行它,并假设/约束条件是实体在传递给模型时已经有效。这种趋势受到一些MVC框架(即Struts)的鼓励,该框架在控制器端提供了开箱即用的验证,但是,例如,当您需要在不同的上下文中重新部署模型时(例如,一个Web服务),并且您的验证规则在前一个控制器中连线。

我鼓励你的研究,但有个人经验的小建议:避免过多考虑。这种问题由于宗教战争和不同方法倡导者的毫无意义的固执而臃肿。在现实世界中,最终,所有这些设计问题都被困难的事实搞砸了,而且只需要15分钟就可以完成一些工作,因为副总裁在午餐时间之前就想要这样做。

相关问题