0

我非常了解 MVC(至少我认为我知道)并且我已经使用这种方法开发了很多应用程序。不过有一件事让我很烦恼:

在我看到的每个模型图中,它被绘制为一个三角形,控制器和视图/模型之间有直接连接,但视图和模型之间也有连接(即模型和视图直接说话,中间没有控制器)。

在我作为开发人员的所有这些年里,模型和视图之间总是完全分离,控制器充当中间人,据我所知,这也是最佳实践。

那么在什么情况下我希望模型直接与视图对话?你能给我一个简单的例子吗?

4

2 回答 2

1

模型不与视图对话。但是视图显示模型中包含的数据,并从模型中调用方法来显示它们。这可能就是您的图表中它们之间存在链接的原因:

  1. 控制器从数据库(通过服务层)获取模型并将其存储在请求中
  2. 控制器调度到适当的视图
  3. 视图从模型中获取数据并生成 HTML
于 2012-07-12T09:02:44.963 回答
1

一些带有“监督控制器”的 Model-View-Presenter 设计模式允许直接从 Model 更新 View,用于简单的数据绑定任务:

http://msdn.microsoft.com/en-us/library/ff647543.aspx

还有 ModelView - ViewModel 模式,但它与 MVC 类似,只是将 Controller 逻辑移至 View。一些 WPF 应用程序使用 MV-VM 从数据源快速更新 UI:

http://russelleast.wordpress.com/2008/08/09/overview-of-the-modelview-viewmodel-mvvm-pattern-and-data-binding/

但是这两种替代方案(MVP w/Supervising C 和 MV-VM)实际上只是 MVC 的变体。

于 2012-07-12T09:52:10.243 回答