我最近听说过 MVC(模型视图控制器)这个词被大量的嗡嗡声所折腾,但它到底是什么?
13 回答
您可能想看看 Martin Fowler 在Martin Fowlers 网站上对 MVC、MVP 和 UI 架构的一般看法。
我喜欢Martin Fowler 的这篇文章。你会看到 MVC 实际上或多或少已经死了,严格来说,在它原来的富 UI 编程领域。View 和 Controller 之间的区别不适用于大多数现代 UI 工具包。
这个词最近似乎在网络编程界找到了新的生命。我不确定这是否是真正的 MVC,或者只是将名称重新用于一些密切相关但略有不同的想法。
MVC 是一种最初在 smalltalk 早期开创的设计模式。
这个概念是模型将代表您的应用程序状态和逻辑,控制器将处理“视图”之间的 IO。
视图是模型中状态的表示。例如,您的模型可能是一个电子表格文档,并且您可能有一个将其表示为电子表格的视图和一个将其表示为数据透视表的视图。
现代 MVC 已经被虚假的 MVC 网络垃圾污染了,所以我会让其他人回答这个问题。
这是对 MVC 的简单描述:http: //www.devcodenote.com/2015/04/mvc-model-view-controller.html
一个片段:
Definition : It is a design pattern which separates an application into multiple layers of functionality.
The layers:
Model Represents data. It acts as an interface between the database and the application (as a data object). It will handle validations, associations, transactions etc.
Controller It gathers and processes data. Handles code which does data selection and data messaging.
View Displays output to the users.
正如您问题上的标签所述,它是一种设计模式。但这可能对你没有帮助。基本上它是一种将代码组织成逻辑分组的方法,这些分组保持各个部分分开并且易于修改。
简化:模型=数据结构/业务逻辑视图=输出层(即HTML代码)控制器=消息传输层
因此,当人们谈论 MVC 时,他们所谈论的是将那里的代码划分为这些逻辑组,以保持其干净和结构化,并希望是松散耦合的。通过遵循这种设计模式,您应该能够构建可以将 View 完全更改为其他内容的应用程序,而无需触摸您的控制器或模型(即从 HTML 切换到 RSS)。
那里有大量的教程,只需在谷歌上搜索它,我相信您至少会找到一个用与您一起点击的术语来解释它的教程。
MVC 设计模式:
4 个部分 = 用户、视图、控制器、模型。
用户: - 看到视图并使用控制器。
模型: - 保存数据并更新有新数据/状态的模型。
查看: - 显示模型拥有的数据。
控制器: - 从用户那里获取或设置信息的请求,然后与视图或模型通信,分别。- 它通过视图“获取”。- 它通过模型“设置”。
到目前为止,维基百科似乎描述得最好:
http://en.wikipedia.org/wiki/Model-view-controller
模型-视图-控制器 (MVC) 是一种用于软件工程的架构模式。该模式的成功使用将业务逻辑与用户界面考虑隔离开来,从而使应用程序更容易修改应用程序的视觉外观或底层业务规则,而不会影响另一个。在 MVC 中,模型表示应用程序的信息(数据)和用于操作数据的业务规则;视图对应于用户界面的元素,例如文本、复选框项目等;控制器管理涉及与用户操作模型通信的细节,例如击键和鼠标移动
MVC 或模型-视图-控制器用户界面范式首先由 Xerox PARC 的 Trygve Reenskaug 描述。1981 年 8 月首次出现在 Byte 杂志第 6 卷第 8 期。
这篇关于 Oreilly 的什么是 MVC博客文章已经涵盖了您。
MVC 是一种将表示与用户交互分开的软件架构模式。通常,模型由应用程序数据和与之交互的函数组成,而视图将这些数据呈现给用户;控制器在两者之间进行调解。
这是一种将应用程序(模型)的底层功能与其与用户交互的方式(视图)分离的方法。控制器协调模型和视图如何相互通信。
虽然目前风靡一时,但重要的是要记住,阻止模型本身能够准确地确定其数据如何呈现给用户可能被视为消极的事情。最明显的例子是 HTML。HTML 的初衷是通过控制器(浏览器)将模型(HTML)与视图(呈现的网页)明确分离。这种最初的意图遭到了如此强烈的反对,以至于如果浏览器没有将页面像素渲染为设计者想要的完美视图,就会受到批评。
MVC 是一种将用户界面元素划分为 3 个不同概念的方法。模型是接口操作的数据。视图是元素在视觉上(或者可能是听觉上?)的表示方式。控制器是对数据进行操作的逻辑。
例如,如果您想在 UI 中操作一些文本。一个简单的字符串可以表示数据。视图可以是文本字段。控制器是转换来自用户的输入(例如字符或鼠标输入)并对底层数据模型进行更改的逻辑。
就像许多人已经说过的那样,MVC 是一种设计模式。我现在正在教我的一位同事,并以这种方式进行了解释:
模型- 数据访问层。这可以是直接数据访问、Web 服务等
视图- 应用程序的表示层。
控制器- 这是您的应用程序的业务逻辑。
这种模式增强了测试驱动的开发。