我非常了解MVC(至少我认为我这样做)并且我使用这种方法开发了很多应用程序。但有一件事让我感到困惑:
在我看到的模型的每个图表中,它被绘制为一个三角形,控制器和视图/模型之间有直接连接,但也是视图和模型之间的连接(即模型和视图直接说话而没有控制器在中间)。
在我作为开发人员的这些年里,模型和视图之间始终存在完全的分离,控制器充当中间人,据我所知,这也是最佳实践。
那么在什么情况下我希望模型直接与视图对话?你能给我一个简单的例子吗?
答案 0 :(得分:1)
该模型不与视图对话。但视图显示模型中包含的数据,并从模型中调用方法以显示它们。这可能就是为什么你的图表中它们之间存在联系的原因:
答案 1 :(得分:1)
使用“监督控制器”的一些Model-View-Presenter设计模式允许直接从模型更新视图,以进行简单的数据绑定任务:
http://msdn.microsoft.com/en-us/library/ff647543.aspx
还有ModelView - ViewModel模式,但它与MVC相同,只是将Controller逻辑移动到View。一些WPF应用程序使用MV-VM从数据源进行快速UI更新:
但两种替代方案(MVP w / Supervising C和MV-VM)实际上只是MVC的变种。