`
张江兴
  • 浏览: 121420 次
  • 性别: 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设计模式可以在满足对界面要求的同时,使软件的计算模型独立于界面的构成。

分享到:
评论

相关推荐

    MVC编程实训实验报告

    MVC编程实训。MVC编程实训。MVC编程实训。

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

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

    ASP.NET MVC 5 with Bootstrap and Knockout

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

    ASP.NET MVC 3高级编程

    《asp.net mvc 3高级编程》 第1章 入门 1 1.1 asp.net mvc简介 1 1.1.1 asp.net mvc如何适应asp.net 1 1.1.2 mvc模式简介 2 1.1.3 mvc在web框架中的应用 2 ...1.1.4 asp.net mvc 3的发展历程 3 ...14.6 小结 370

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

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

    MVC小结

    NULL 博文链接:https://dbzhuan.iteye.com/blog/542712

    《[精通ASP.NET.MVC.5框架》高清带书签

    1.10 小结 10 第2章 第一个MVC应用程序 11 2.1 准备Visual Studio 11 2.2 创建新的ASP.NET MVC项目 11 2.2.1 添加第一个控制器 13 2.2.2 理解路由 16 2.3 渲染Web页面 16 2.3.1 创建并渲染视图 16 2.3.2 添加动态...

    Asp.net MVC4教学-动态表格

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

    asp.net mvc讲解

    关于asp.net mvc框架的一些小结和程序讲解,希望对大家有用

    Spring MVC 中获取session的几种方法(小结)

    主要介绍了Spring MVC 中获取session的几种方法(小结),具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    ASP.NET小结之MVC, MVP, MVVM比较以及区别(二)

    上一篇得到大家的关注,非常感谢。由于自己对于这些模式的理解也是有限,对于这些模式的比较,是结合自己的理解,一些地方不一定准确,但是只有亮出自己的观点,才能抛砖引玉不是?... MVC, MVP和MVVM模式使用场景总结

    ASP.NET小结之MVC, MVP, MVVM比较以及区别(一)

    MVC, MVP和MVVM都是用来解决界面呈现和逻辑代码分离而出现的模式。以前只是对它们有部分的了解,没有深入的研究过,对于一些里面的概念和区别也是一知半解。现在一边查资料,并结合自己的理解,来谈一下对于这三种...

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

    前言:前几天要准备一个演讲,所以准备了MVC的一些基本的东西,以前也使用过MVC,但是只是使用,而不是去了解,所以趁着这个机会好好的把别人的MVC视频看了一下(是一个微软的MVP会员发布的视频,相信有些人都看过),...

    Spring MVC总结(一)

    对Spring MVC的简单总结,还有不完善的地方。

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

    整理除了这个笔记,共享一下子,基本MVC的所有东西都介绍了,但是都是很基础的东西。本来打算一篇发表完的,但是发现东西有点多,所以分成了两篇文章,这是最后一篇了! 1.ASP.NET MVC请求过程  1 2.Controller  ...

    基于Web的Java开发设计-MVC篇

    阐述MVC设计模式的组成和工作原理,适用于教学。

    MVC模式JSF与Struts的异同.txt

    MVC模式JSF与Struts的异同小结,仅仅是学习则以!

    lanlan2017#JavaReadingNotes#2.6 小结_第2章开发Web应用1

    title: 2.6 小结_第2章开发Web应用- 第2章 开发Web应用2.6 小结Spring提供了一个强大的Web框架,名为Spring MVC,能够用来

    浅谈MVC设计模式(示例)

    MVC模式组成ModelViewController示例M层DAO数据访问接口V层login.jsplogin_success.jspC层com.servlet.LoginServlet小结 什么是MVC? (官方定义出门右转) MVC(Model View Controller)模型-视图-控制器。典型的MVC...

    AspNet MVC 开发技术

    1.4 小结 9 1.5 本章要点 10 第2章 编写C#程序 11 2.1 开发环境 12 2.1.1 visual studio 2010 12 2.1.2 visual C# 2010 express edition 14 2.2 控制台应用程序 15 2.2.1 solution explorer 19 2.2.2 properties窗口...

Global site tag (gtag.js) - Google Analytics