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

时间:2008-09-24 20:56:06

标签: model-view-controller design-patterns glossary

我听说MVC(模型视图控制器)一词最近被大量的Buzz抛出,但实际上是什么呢?

13 个答案:

答案 0 :(得分:22)

您可能想看看Martin Fowler在Martin Fowlers site处对MVC,MVP和UI架构所说的内容。

答案 1 :(得分:10)

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

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

答案 2 :(得分:5)

MVC是一种最初在smalltalk的早期开创的设计模式。

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

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

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

答案 3 :(得分:2)

正如你问题上的标签所说明的那样是一种设计模式。但这可能对你没有帮助。基本上它是一种将代码组织成逻辑分组的方法,这些分组可以使各个部分保持分离并且易于修改。

简化: 模型=数据结构/业务逻辑 View =输出层(即HTML代码) Controller =邮件传输层

因此,当人们谈论MVC他们正在谈论的是将代码分成这些逻辑组以保持其清洁和结构化,并且希望松散耦合。通过遵循这种设计模式,您应该能够构建可以将View完全更改为其他内容的应用程序,而无需触摸您的控制器或模型(即从HTML切换到RSS)。

有大量和大量的教程只是谷歌为它,我相信你会出现至少一个将解释它与你点击的术语。

答案 4 :(得分:2)

以下是对MVC的简短描述:http://www.devcodenote.com/2015/04/mvc-model-view-controller.html

摘录:

定义:这是一种将应用程序分为多个功能层的设计模式。

图层:

模型 代表数据。 它充当数据库和应用程序之间的接口(作为数据对象)。 它将处理验证,关联,交易等。

控制器 它收集和处理数据。 处理执行数据选择和数据消息传递的代码。

查看 向用户显示输出。

答案 5 :(得分:1)

维基百科似乎到目前为止描述得最好:

http://en.wikipedia.org/wiki/Model-view-controller

模型 - 视图 - 控制器(MVC)是软件工程中使用的架构模式。成功使用该模式将业务逻辑与用户界面考虑因素隔离开来,从而使应用程序更容易修改应用程序的可视外观或基础业务规则而不会影响另一个。在MVC中,模型表示应用程序的信息(数据)和用于操作数据的业务规则;视图对应于用户界面的元素,例如文本,复选框项等等;并且控制器管理涉及与用户动作模型的通信的细节,例如击键和鼠标移动

答案 6 :(得分:1)

MVC或模型 - 视图 - 控制器用户界面范例首先由Xerox PARC的Trygve Reenskaug描述。 1981年8月,Byte杂志第6卷第8期首次出版。

答案 7 :(得分:0)

关于Oreilly的这篇What is MVC博客文章已经涵盖了你。

答案 8 :(得分:0)

MVC是一种将表示与用户交互分开的软件架构模式。 通常,模型由应用程序数据和与之交互的函数组成,而视图将此数据呈现给用户;控制器介于两者之间。

答案 9 :(得分:0)

MVC设计模式:

4个部分=用户,视图,控制器,模型。

用户:   - 查看视图并使用Controller。

型号:   - 保存数据并更新模型,表明存在新数据/状态。

查看:   - 显示模型所具有的数据。

控制器:   - 接受用户的请求以获取或设置信息,然后与视图或模型进行通信。   - 它"得到"通过视图。   - 它"设置"通过模型。

答案 10 :(得分:-1)

这是一种将应用程序(模型)的基础功能与其与用户交互的方式(视图)分离的方法。控制器协调模型和视图如何相互通信。

虽然目前风靡一时,但重要的是要记住,防止模型本身能够确切地确定其数据如何呈现给用户可被视为消极事物。最明显的例子是HTML。 HTML的初衷是通过控制器(浏览器)将模型(HTML)与视图(呈现的网页)明确分开。如果他们不能使页面像素完美地符合设计师所希望的观点,那么浏览器就会受到批评。

答案 11 :(得分:-2)

MVC是一种将用户界面元素划分为3个不同概念的方法。该模型是接口运行的数据。视图是如何在视觉上(或可能是可听见的?)表示元素。控制器是对数据进行操作的逻辑。

例如,如果您要在UI中操作某些文本。一个简单的字符串可以表示数据。视图可以是文本字段。控制器是转换用户输入的逻辑 - 比如字符或鼠标输入 - 并对基础数据模型进行更改。

答案 12 :(得分:-2)

就像许多人已经说过的那样,MVC是一种设计模式。我现在正在教我的一个同事并以这种方式解释:

M odels - 数据访问层。这可以是直接数据访问,Web服务等

V iews - 应用程序的表示层。

C 控制器 - 这是您的应用程序的业务逻辑。

这种模式增强了测试驱动的开发。