首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MVC方式及MVC1和MVC2模式的区别

2012-11-13 
MVC模式及MVC1和MVC2模式的区别??? MVC模式是Model-View-Controller的缩写,中文翻译为模式-视图-控制器

MVC模式及MVC1和MVC2模式的区别

??? MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。如下图:

?

MVC方式及MVC1和MVC2模式的区别

??? MVC模式在具体的应用中,又分为MVC1和MVC2模式。下面分别说说这两种模式的概念、应用方向和主要区别。

?

1.MVC1模式

MVC方式及MVC1和MVC2模式的区别

??? View接受用户输入,并传递到Controller。

??? Controller统一进行处理命令,交由Model处理具体的业务。

??? 经过处理Model更新后,通知View进行更新。

?

??? 这种模式主要用于桌面程序,使用观察者模式实现,具体来说就是让View观察Model,而用户交互控制的地方用匿名类的方式统一放在Controller中。像MFC的frame-document-view架构,如果document改变了,他会主动通知View进行update。但是在WEB应用程序中,Model(在Java中通常是JavaBean)的数据更新后,无法通知View进行更新(View在Java中通常是非常多JSP页面,需要选择一个),因此,在WEB应用程序中应该使用下面这种模式:MVC2模式。

?

2.MVC2模式

MVC方式及MVC1和MVC2模式的区别

??? View接受用户输入,并传递到Controller。

??? Controller统一进行处理命令,交由model处理具体的业务。

??? 经过处理的Model更新后,Controller会选一个View并把Model内容传递(request,session)给它(forward)。然后View进行显示。

?

3.区别

??? 可以看到,Model是否能主动通知View就是MVC1和MVC2模式的主要差别。桌面程序可以做到,所以使用MVC1;Web程序由于Http协议的限制做不到,所以使用MVC2。

1 楼 yywu 2009-12-30   不错,受教了,以下还有不同的说法:
http://www.iteye.com/problems/14987

热点排行