什么是MVC(模型视图控制器)?

Chr*_*ann 24 model-view-controller glossary design-patterns

我听说MVC(模型视图控制器)这个术语最近被大量的Buzz抛出,但究竟是什么呢?

Rub*_*ben 22

您可能想看看Martin Fowler在Martin Fowlers网站上对MVC,MVP和UI架构所说的内容.


Luk*_*ell 10

我喜欢Martin Fowler的这篇文章.你会发现MVC实际上或多或少已经死了,严格来说,它在富有的UI编程的原始领域.View和Controller之间的区别不适用于大多数现代UI工具包.

这个词似乎最近在网络编程圈子中找到了新的生命.我不确定这是否真的是MVC,或者只是将这个名称重新用于一些密切相关但略有不同的想法.


Fly*_*wat 5

MVC是最初在smalltalk的早期开创的设计模式.

概念是模型将代表您的应用程序状态和逻辑,控制器将处理"视图"之间的IO.

视图是模型中状态的表示.例如,您的模型可能是电子表格文档,您可能有一个将其表示为电子表格的视图和将其表示为数据透视表的视图.

现代MVC已被假冒MVC网络垃圾污染,所以我会让其他人回答这个问题.

  • 你发表声明"现代MVC已被假冒MVC网络垃圾污染",然后避免解决它,推迟回答那个问题的"其他人".为什么你觉得这样,为什么不*你*为我们阐明? (6认同)
  • Rails和大多数其他Web MVC框架将业务逻辑移动到控制器(有时是视图!),并且通常将模型用作哑数据存储.从纯粹主义的角度来看,这不是MVC ......但是它有效,Stackoverflow正在使用ASP.NET MVC ......那里有同样的想法. (2认同)