当我看到MVC图时,我有这样的反对意见:为什么Controller面向用户并且View隐藏在某个地方? 在我看来,用户看到并与View交互(这是他在浏览器中看到的),并通过View用户“与Controller对话”,那么为什么Controller是第一个在线?
此外,不应该将图表显示为塔式结构(而不是三角形): 查看 - 允许用户交谈 - 控制器 - 模型(在底部) - 然后(馈送)返回 - 控制器 - 调整 - 查看
当我看到控制器面向用户的图表时,我总是有这个奇怪的用户图片,一手拿着MVC图,另一手拿着螺丝刀,弹出计算机的盒子,找一个控制器让MVC启动。
答案 0 :(得分:2)
非常不幸的是,大多数文章和书籍仍然使用这些无用的图表来表示MVC。一个更有用的MVC图实际上是像Dino Esposito在他的书Microsoft .NET: Architecting Applications for the Enterprise上使用的UML序列图
其次,正如您所指出的,大多数MVC文章和书籍尚未更新,以描述如何在Web应用程序中应用MVC,并且仍然谈论MVC,因为它最初是在20多年前设想的。
我提到的Esposito书中有一个非常好的章节,他描述了MVC(如最初描述的)是如何死亡的,我们现在应该关注它的现代变体,如Model2,Passive View和Supervising Controller。我有一个你可能觉得有用的review of this chapter on my blog。