1.什么是MVC
MVC是模型-视图-控制(MVC:Model-View-Controller),是一种交互界面的组织模型;
(1) 模型(Model)包含了应用问题的核心数据、逻辑关系和计算功能,它封装了所需的数据,提供了完成问题处理的操作过程。控制器依据I/O的需要调用这些操作过程。模型还为视图获取显示数据而提供了访问其数据的操作。
这种变化-传播机制体现在各个相互依赖部件之间的注册关系上。模型数据和状态的变化会激发这种变化-传播机制,它是模型、视图和控制器之间联系的纽带。
(2) 视图(View)通过显示的形式,把信息转达给用户。不同视图通过不同的显示,来表达模型的数据和状态信息。每个视图有一个更新操作,它可被变化-传播机制所激活。当调用更新操作时,视图获得来自模型的数据值,并用它们来更新显示。
在初始化时,通过与变化-传播机制的注册关系建立起所有视图与模型间的关联。视图与控制器之间保持着一对一的关系,每个视图创建一个相应的控制器。视图提供给控制器处理显示的操作。因此,控制器可以获得主动激发界面更新的能力。
(3) 控制器(Controller)通过时间触发的方式,接受用户的输入。控制器如何获得事件依赖于界面的运行平台。控制器通过事件处理过程对输入事件进行处理,并为每个输入事件提供了相应的操作服务,把事件转化成对模型或相关视图的激发操作。
2.MVC的优点
(1) 可以为一个模型在运行时同时建立和使用多个视图。变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。
(2) 或关闭、甚至在运行期间进行对象替换。
(3) 模型的可移植性。因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。需要做的只是在新平台上对视图和控制器进行新的修改。
(4) 潜在的框架结构。可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。
3.MVC的不足之处
(1) 增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
(2) 视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
(3)视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。
(4) 目前,一般高级的界面工具或构造器不支持MVC模式。改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成使用MVC的困难。
小结
与软件所处理问题的内在模型相比较,用户界面是需要经常发生变化的,采用MVC设计模式可以在满足对界面要求的同时,使软件的计算模型独立于界面的构成。
分享到:
相关推荐
### 小结 MVC4是一种重要的Web开发模式,它不仅有助于提高代码的组织结构,还能够简化测试和维护过程。对于希望构建现代化Web应用程序的开发者来说,理解和掌握MVC4是非常有益的。通过学习上述内容,考生们可以更好...
#### 四、小结 MVC 架构模式在 Android 开发中具有重要的作用,它能够帮助开发者更好地组织代码,提高程序的可维护性和可扩展性。通过将 GeoQuiz 应用作为一个具体的案例进行分析,我们不仅可以深入理解 MVC 模式的...
在本篇MVC编程实训实验报告中,我们将深入探讨如何运用MVC(Model-View-Controller)模式来实现文件的上传、分割与合并功能。MVC模式是一种软件设计模式,常用于构建Web应用程序,它将应用程序的数据模型、用户界面...
**MVC模式详解** 在软件开发领域,MVC(Model-View-Controller)模式是一种广泛应用于Web应用程序的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离开来,提高了代码的可维护性和可扩展性。这篇博客将对...
小结 第2章Bootstrap介绍 默认菜单 含有下拉列表和搜索框的菜单 按钮 警告框 主题 小结 第3章Knockout.js介绍 安装Knockout.js 基本示例 何为MVVM? 创建ViewModel 小结 第4章数据库应用 Entity ...
Spring MVC 中的 RequestMapping 6个基本用法小结 Spring MVC 是一个基于 Java 的 Web 应用程序框架,提供了强大的 RequestMapping 机制来处理 HTTP 请求。在 Spring MVC 中,RequestMapping 是一个核心组件,负责...
ASP.NET MVC是一个强大的框架,用于构建可维护性和可测试性高的Web应用程序。在这个基础篇的第二部分中,我们将深入理解其核心概念,包括请求过程、控制器、动作、路由以及路由的优势。 1. **ASP.NET MVC请求过程**...
指南在最后部分提供了一个小结,对整个教程内容进行回顾,并指导学习者如何开始使用*** MVC 4框架。同时,指南还提供了一个示例项目的链接,以便学习者下载并亲自实践教程中所学的知识点。 #### 总结 这份"***MVC4...
ASP.NET MVC 基础知识点总结 在 ASP.NET MVC 中,请求过程是从客户端发送请求到服务器端处理的过程。这个过程可以被分解为以下几个部分: 1. Controller:控制器在 ASP.NET MVC 中扮演着处理客户端请求的角色。...
### 小结 通过以上介绍可以看出,在Windchill 10中,可以通过MVC架构有效地管理和操作表格数据。具体来说,`setChooseToChange`和`setPCRNO`这两个方法分别用于更新MVC表中特定列的选中值和所有行的`PCR_NO`列值,...
Spring MVC架构与DispatcherServlet配置 Spring MVC是一种流行的基于Java的Web应用框架,它提供了一个灵活的架构来开发Web应用程序。在本文中,我们将对Spring MVC的架构和DispatcherServlet的配置进行总结。 ...
#### 四、小结 理解 ASP.NET MVC 的 Request 生命周期对于开发者来说是非常重要的。它不仅可以帮助我们更好地组织代码结构,还可以让我们更加灵活地定制应用程序的行为。通过深入学习这些关键阶段以及各个扩展点的...
Asp.net MVC4教学入门: ...技术要点小结: 1. Dreamweaver制作的html及CSS如何和VS MVC4开发平台结合使用。 2. get和post请求的区别。 3. 静态和动态的区别。 4. mvc开发平台自带的html助记符的使用。
14. 小结与实践:在完成整个入门指南的学习之后,会有一个小结,概述所学到的核心概念和技能,并提供进一步的实践建议和扩展阅读链接。 以上内容基于提供的文件片段进行了详细的知识点阐述,旨在让读者对*** MVC4...
### 小结 Spring MVC 的配置文件主要用于管理整个应用的结构和行为。通过 DispatcherServlet,我们可以控制请求的处理流程,并通过不同的 HandlerMapping 实现灵活的 URL 映射机制。这些配置有助于开发者构建高效、...