在MVC中,View应该知道模型吗?

时间:2015-01-14 18:33:46

标签: oop model-view-controller

视图是否应该知道模型:

enter image description here

与否:

enter image description here

3 个答案:

答案 0 :(得分:2)

程序员经常将此快捷方式并使视图特定于模型。例如,如果您在CRM应用程序中,该模型可能具有firstName字段;然后视图假定它给出的模型对象具有firstName字段并在适当的位置显示。

这当然不可重复使用。如果要创建视图以显示数据表,则不应该关心在哪个列中显示哪个模型字段。它应该只是以通用方式处理表格数据的显示和格式化。但是,如果您的视图是针对其显示的特定数据定制的网页,则可以正常。

因此,您必须根据具体情况决定是否希望视图了解其显示的特定数据,或者您是否希望它成为可重用的组件。

无论哪种方式,任何更改到模型的数据都应始终通过控制器进行。控制器负责执行您的业务逻辑,而当其他东西绕过它时,这是不可能的。

答案 1 :(得分:1)

不,模型和视图通过控制器进行通信。

我的意思是,你可以让他们彼此了解,但这会导致紧密耦合,并且难以扩展应用程序的功能。

答案 2 :(得分:0)

根据权利,模型(基础业务实体)不应直接暴露给View。我们通常使用ViewModel,这是一种特定于表示的模型,它源自一个或多个模型。