【问题标题】:Original idea for the MVC patternMVC 模式的原始想法
【发布时间】:2015-03-01 06:08:52
【问题描述】:

MVC 模式的最初想法是什么?我试图更好地理解这个模式,但是你遇到的所有小变化都让你很难理解原来是什么,所以我实际上可以知道哪些部分是可变的,哪些不是。我得到了 Ruby on Rails 的方式,因此控制器实际上是主要的入口点。然而,我见过的一些 Java 示例使用控制器作为实例化和调用方法的东西,这样主入口点就完全避免了处理视图和模型的隐式知识。我想我想问的是什么是与语言无关的 MVC 模式?

【问题讨论】:

  • 我猜最初的想法是分离职责和解耦代码,以便更容易管理、更新和重用。
  • 如果您也考虑代码随时间的稳定性,这对我来说很有意义。模型的元素在应用程序域中趋于稳定,而视图则非常短暂。一个很好的例子是 Microsoft Word。多年来,Microsoft 已经修改了应用程序的视图,但模型(段落、部分、页面布局、样式等)并没有太大变化。 MVC 便于更改视图代码,而无需修改模型代码,因为后者与前者不耦合。

标签: java ruby-on-rails design-patterns model-view-controller


【解决方案1】:

根据 Wikipedia,第一个关于 MVC 设计模式的学术出版物是在 1988 年,描述了 Smalltalk-80 版本。更多历史可以在 Trygve Reenskaug 所写的 historical notes 中找到,他被公认为 MVC 设计模式的鼻祖。这些日期为 10 年前完成的原始工作。 (当然,当时 MVC 并未被描述为 "design pattern"。它早于 Kent、Cunningham 和其他人将 Alexander 的设计模式应用于软件的工作。)

可以在 Martin Fowler 的网站上找到对 MVC 模式(以及它旨在实现的目标)的出色而权威的描述; here。本文将 MVC 模式置于其他早期和最近的 GUI 设计模式的背景下,讨论各自的优势和问题。

(Martin Fowler 指出,许多其他人描述为 MVC 的 GUI 框架显然不是 MVC。当您尝试在脑海中理清这些概念时,请记住这一点。)

参考资料:

【讨论】:

  • 谢谢你,我被那些似乎只考虑他们的语言的网站所吸引。 model-thing-view 的历史注释描述听起来像是我称之为模式的东西:D。
  • 对不起,它的意思是命名一些东西'东西'。他们可能没有,因为模式概念是后来才出现的,我猜是四人帮。
  • @shred14 - Kent 和 Cunningham 于 1987 年发表了关于软件设计模式的文章,它是十年前从(实体的)架构中借用的概念的应用。四人帮一书于 1994 年首次出版。
  • 这很酷。我猜在 Kent 和 Cunningham 论文之前,“模式”概念已经以某种形式出现过,MVC 论文肯定会暗示这一点。他们只是给它起了一个名字并将其形式化,但话说回来,我对计算机科学学术界的这一面并不熟悉。谢谢!
猜你喜欢
  • 2015-11-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-21
  • 1970-01-01
  • 2021-04-15
相关资源
最近更新 更多