`
张江兴
  • 浏览: 122511 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论
阅读更多

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 模块考试

    ### 小结 MVC4是一种重要的Web开发模式,它不仅有助于提高代码的组织结构,还能够简化测试和维护过程。对于希望构建现代化Web应用程序的开发者来说,理解和掌握MVC4是非常有益的。通过学习上述内容,考生们可以更好...

    Android mvc详解

    #### 四、小结 MVC 架构模式在 Android 开发中具有重要的作用,它能够帮助开发者更好地组织代码,提高程序的可维护性和可扩展性。通过将 GeoQuiz 应用作为一个具体的案例进行分析,我们不仅可以深入理解 MVC 模式的...

    MVC编程实训实验报告

    在本篇MVC编程实训实验报告中,我们将深入探讨如何运用MVC(Model-View-Controller)模式来实现文件的上传、分割与合并功能。MVC模式是一种软件设计模式,常用于构建Web应用程序,它将应用程序的数据模型、用户界面...

    MVC小结

    **MVC模式详解** 在软件开发领域,MVC(Model-View-Controller)模式是一种广泛应用于Web应用程序的设计模式,它将应用程序的业务逻辑、数据处理和用户界面分离开来,提高了代码的可维护性和可扩展性。这篇博客将对...

    ASP.NET MVC 5 with Bootstrap and Knockout

    小结 第2章Bootstrap介绍 默认菜单 含有下拉列表和搜索框的菜单 按钮 警告框 主题 小结 第3章Knockout.js介绍 安装Knockout.js 基本示例 何为MVVM? 创建ViewModel 小结 第4章数据库应用 Entity ...

    Spring mvc中 RequestMapping 6个基本用法小结

    Spring MVC 中的 RequestMapping 6个基本用法小结 Spring MVC 是一个基于 Java 的 Web 应用程序框架,提供了强大的 RequestMapping 机制来处理 HTTP 请求。在 Spring MVC 中,RequestMapping 是一个核心组件,负责...

    ASP.NET MVC小结之基础篇(二)

    ASP.NET MVC是一个强大的框架,用于构建可维护性和可测试性高的Web应用程序。在这个基础篇的第二部分中,我们将深入理解其核心概念,包括请求过程、控制器、动作、路由以及路由的优势。 1. **ASP.NET MVC请求过程**...

    Asp.NetMVC4入门指南(经典).pdf

    指南在最后部分提供了一个小结,对整个教程内容进行回顾,并指导学习者如何开始使用*** MVC 4框架。同时,指南还提供了一个示例项目的链接,以便学习者下载并亲自实践教程中所学的知识点。 #### 总结 这份"***MVC4...

    【ASP.NET编程知识】ASP.NET MVC小结之基础篇(二).docx

    ASP.NET MVC 基础知识点总结 在 ASP.NET MVC 中,请求过程是从客户端发送请求到服务器端处理的过程。这个过程可以被分解为以下几个部分: 1. Controller:控制器在 ASP.NET MVC 中扮演着处理客户端请求的角色。...

    Windchill 10 MVC table

    ### 小结 通过以上介绍可以看出,在Windchill 10中,可以通过MVC架构有效地管理和操作表格数据。具体来说,`setChooseToChange`和`setPCRNO`这两个方法分别用于更新MVC表中特定列的选中值和所有行的`PCR_NO`列值,...

    Spring MVC总结(一)

    Spring MVC架构与DispatcherServlet配置 Spring MVC是一种流行的基于Java的Web应用框架,它提供了一个灵活的架构来开发Web应用程序。在本文中,我们将对Spring MVC的架构和DispatcherServlet的配置进行总结。 ...

    asp.net mvc request生命周期流程图

    #### 四、小结 理解 ASP.NET MVC 的 Request 生命周期对于开发者来说是非常重要的。它不仅可以帮助我们更好地组织代码结构,还可以让我们更加灵活地定制应用程序的行为。通过深入学习这些关键阶段以及各个扩展点的...

    Asp.net MVC4教学-动态表格

    Asp.net MVC4教学入门: ...技术要点小结: 1. Dreamweaver制作的html及CSS如何和VS MVC4开发平台结合使用。 2. get和post请求的区别。 3. 静态和动态的区别。 4. mvc开发平台自带的html助记符的使用。

    Asp.Net MVC4入门指南

    14. 小结与实践:在完成整个入门指南的学习之后,会有一个小结,概述所学到的核心概念和技能,并提供进一步的实践建议和扩展阅读链接。 以上内容基于提供的文件片段进行了详细的知识点阐述,旨在让读者对*** MVC4...

    spring mvc的配置文件详解

    ### 小结 Spring MVC 的配置文件主要用于管理整个应用的结构和行为。通过 DispatcherServlet,我们可以控制请求的处理流程,并通过不同的 HandlerMapping 实现灵活的 URL 映射机制。这些配置有助于开发者构建高效、...

Global site tag (gtag.js) - Google Analytics