`
淡然若水
  • 浏览: 6427 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

MVC之父对“模型-视图-控制器”的最初定义

    博客分类:
  • MVC
mvc 
阅读更多
此文为转载
文章原地址:http://www.cn-cuckoo.com/2011/06/22/mvc-originals-2454.html
英文原文出处:http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf

我创立的Model-View-Controller(MVC)模式作为一个直观的解决方案,针对的是一个一般性的问题,即让用户能够支配自己从多个角度看到的信息。MVC引起的关注之多,让人有点始料不及。有些教材对MVC的改造甚至到了离经叛道的程度,企图达到让计算机来控制用户的悖谬目的。

而MVC的根本目的是在人类头脑中的心智模型和计算机中的数字模型之间架起一座桥梁。理想情况下,MVC的实现方案与用户直接查看和操作领域信息的直觉吻合。假如用户想在不同的上下文中以及/或者以不同的视角看到相同的模型要素,那MVC就有了它的用武之地。

模型

模型,表示知识。它既可能是一个对象(当然,如果仅一个对象就没多大意思了),也可能是由许多对象组成的结构。

模型及其组成部分是一方,而模型创建者意识中要表现的世界则是另一方,这两方应该一一对应。自然地,模型的每个节点都应该明确对应于问题的一个部分。

模型的所有节点都应该把问题解决到相同的程度,把面向问题的节点(例如,在日程中添加约会活动)与实现细节(例如,用段落展示)混在一起不容易理解,是应该避免的做法。

视图

视图是模型的(可见的)表现。视图通常会突出模型的某些属性,同时隐藏其他属性。从这个意义上讲,视图就像是一个展示过滤器。

视图依赖于模型(或模型的一部分),通过询问问题的方式从模型中获得用于展示的必要数据。视图通过发送适当的消息,也可以更新模型。这些问题和消息都要按照模型的术语来传达,由此视图必须得知道自己所要表现的模型,它的属性都有什么语义。(比如说,视图可能会询问模型的标识符,期待返回一个Text的实例,但它可能并不认为模型就是Text类。)

控制器

控制器是用户与系统之间的纽带。它为用户提供输入,即它会将相关的视图显示在屏幕适当的位置上(供用户浏览查看)。它为用户提供输出的手段,即它会向用户展示菜单以及其他能接受命令和数据的控件。控制器接收到上述的用户输出,将其转换为适当的消息,然后再将这些消息传递给一或多个视图。

控制器不应该当作视图来用,例如,不能用控制器来画箭头以连接视图的节点。

从另一方面讲,视图也不应该关心用户输入,比如鼠标操作或按键操作之类的。在任何情况下,都应该能够在控制器里编写一个方法,该方法将消息发送到视图,以便原原本本地再现用户的命令。

编辑器

控制器负责连接其所有的视图,这些视图是该控制器的组成部分。有的视图会提供一个特殊的控制器,叫编辑器(editor),以便用户通过它来修改由视图表现的信息。这种编辑器可以被挂接到控制器与其视图之间的路径上,类似于控制器的扩展。编辑完成之后,则从路径上将编辑器移除并丢弃。

注意,编辑器要通过相关视图的具体表现来与用户沟通,因此编辑器与视图是紧密相关的。控制器通过询问视图来获悉编辑器的存在,除此之外没有其他适当的信息来源。
分享到:
评论

相关推荐

    浅谈模型-视图-控制器(MVC)模式

    ### 浅谈模型-视图-控制器(MVC)模式 #### 一、MVC模式简介 MVC(Model-View-Controller),即模型-视图-控制器模式,是一种广泛应用于软件开发领域的设计模式,特别是在桌面应用和Web应用程序中。这种模式的...

    采用MVC(模型-视图-控制器)构架的一个简单程序

    - **代码中国.txt**:可能是一份源代码的文本文件,展示了如何在实际代码中实现MVC架构,包括模型、视图和控制器的定义和交互。 - **代码中国.url**:可能是一个链接,指向一个网站或资源,提供了更多关于MVC架构的...

    关于设计模式MVC(Model View Controller)模型-视图-控制器

    **MVC 模型-视图-控制器**是一种软件设计模式,起源于1980年代的Xerox PARC为Smalltalk-80编程语言设计的。MVC模式被广泛应用于现代软件开发,特别是在Java、ColdFusion和PHP等平台上。它的主要目标是将应用程序的...

    本教程以PHP语言为基础,深入浅出地解析MVC(模型-视图-控制器)框架的关键技术,帮助初学者快速掌握并应用于实际的网站开发中

    本教程是一份最简洁易懂的PHP MVC框架入门教程,它详细介绍了MVC(模型-视图-控制器)框架的基本概念和使用方法。内容包括如何设置和使用路由、如何创建和使用控制器、如何定义和操作模型等。每个主题都配有详细的...

    【Java设计模式】模型 - 视图 - 控制器模式

    模型 - 视图 - 控制器(MVC)设计模式旨在将应用程序分为三个相互关联的组件(模型、视图、控制器),使每个部分能够独立进行模块化开发,增强可维护性和可扩展性。MVC设计模式在Java应用程序中广泛用于Web开发和...

    基础知识学习笔记-MVC(模型-视图-控制器)

    MVC 模型—视图—控制器 一种软件架构模式,把软件系统分为三个基本部分模型(Model),视图(View),控制器(Controller) 用户通过 使用 控制器来 操作 模型 ,模型负责 更新 视图中的内容,用户通过 检视 视图来...

    lmvc-example:模型-视图-控制器示例

    漏洞-模型-视图-控制器框架示例 先决条件 Open-JDK / Oracle-JDK-1.9或更高版本 apt-get install openjdk-9-jdk Maven 3或更高 apt-get安装maven 漏洞MVC 生成并运行 导出环境变量 export JAVA_HOME=/path/to/jdk ...

    puremvc-js-multicore-framework-master

    PureMVC 是一个轻量级的、模型-视图-控制器(Model-View-Controller)框架,它最初是为Flash平台设计的,但随着时间的发展,已被移植到多种编程语言中,包括JavaScript。在本篇文章中,我们将深入探讨"puremvc-js-...

    J2EE的MVC体系结构及其设计模式(一)

    目前大多数企业采用J2EE技术的结构设计与解决方案。对于我们学习和研究J2EE体系结构来说,了解与掌握J2EE体系... 一、J2EE的模型-视图-控制(MVC)体系结构 模型-视图-控制结构是交互式应用程序广泛使用的一种体系

    Travel-Agency-Java-EE-:一个基于 Web 的应用程序,它使用 MVC 实现(模型-视图-控制器),旨在让用户只需点击几下即可连接到应用程序并预​​订他们的座位或房间。前端受到损害,因为后端工作更多在这个项目中很重要

    旅行社-Java-EE- 一个基于 Web 的应用程序,它使用 MVC 实现(模型-视图-控制器),旨在让用户只需点击几下即可连接到应用程序并预​​订他们的座位或房间。前端受到损害,因为后端工作更多在这个项目中很重要。 该...

    mvc-project:基于模型-视图-控制器的项目

    **模型-视图-控制器(MVC)架构模式** 模型-视图-控制器(MVC)是一种软件设计模式,广泛应用于开发Web应用程序,尤其是使用Java技术栈的时候。这个模式将应用逻辑分为三个主要部分,以实现组件之间的松耦合和更好...

    骨头:用于使用MVC(模型-视图-控制器)设计模式构建Web应用程序PHP框架

    一个PHP框架,用于使用MVC(模型-视图-控制器)设计模式构建Web应用程序。 执照 该项目为开源项目,可根据。 作者 约翰·罗宾逊( Robin 要求 PHP> = 7.2.0 JSON PHP扩展 PDO PHP扩展(可选,取决于使用的功能) ...

    模型 视图控制器

    ### 模型视图控制器(MVC)架构详解 #### 引言 MVC,即模型视图控制器(Model-View-Controller),是一种被广泛应用于软件工程中的设计模式,尤其适用于用户界面的设计与开发。MVC最初由Glenn E. Krasner和Stephen...

    nor-mvc:Sendanor 模型-视图-控制器模块

    "nor-mvc" 是一个基于 JavaScript 的模型-视图-控制器(MVC)框架,由 Sendanor 开发。在软件开发中,MVC 设计模式是一种广泛采用的架构模式,用于分离应用程序的不同部分,使其更易于管理和维护。在这个模式中,...

    Spring MVC step-by-step 源码

    它基于Spring框架,提供了模型-视图-控制器(MVC)架构,简化了开发过程。本资源"Spring MVC step-by-step 源码"是针对初学者准备的入门教程,通过实际项目"springapp"来帮助理解Spring MVC的工作原理。 在...

    MVC Music Store - Tutorial - v3.0翻译文档

    ASP.NET MVC是一个模型-视图-控制器(Model-View-Controller)架构,它鼓励清晰的代码分离,提高了可测试性和可维护性。 **1. MVC 架构** - **模型(Model)**:模型包含业务逻辑和数据处理部分,负责与数据库交互,...

    telar-mvc:用于节点服务器的MVC(模型-视图-控制器)的轻量级强大实现

    轻量级功能强大的MVC(模型-视图-控制器)用于节点服务器的实现。 灵感来自于 。 要求 node >= 7.10 typescript >= 2.4 安装 安装先决条件软件包 npm i koa @koa/router ajv reflect-metadata @telar/mvc 安装IoC...

    asp.net mvc视频1-2

    MVC架构模式是近年来编程世界里最长被提及的模式之一,Model View Controller(模型-视图-控制器,MVC)模式将你的软件组织并分解成三个截然不同的角色: ◆Model封装了你的应用数据、应用流程和业务逻辑。 ◆View从...

    pro-asp.net-mvc-5-platform-master.zip

    ASP.NET MVC 5 是微软开发的一个强大的Web应用程序框架,它结合了ASP.NET Web Forms和MVC(模型-视图-控制器)设计模式的优点,为开发者提供了更灵活、可测试的Web开发解决方案。这本书"精通ASP.NET MVC5"的源代码...

    原创MVC框架----Smart

    Smart MVC框架是一款开源的、基于模型-视图-控制器(MVC)设计模式的轻量级Web应用框架。该框架由开发者原创设计,旨在提供高效、灵活且易于维护的Web开发解决方案。通过解耦应用程序的业务逻辑、数据处理和用户界面...

Global site tag (gtag.js) - Google Analytics