MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器",MVC应用程序总是由这三个部分组成。
在具体的应用中,又分为MVC1和MVC2模式。下面分别说说这两种模式的概念、应用方向和主要区别。
1.MVC1模式
结构图如下:
View接受用户输入,并传递到Controller。
Controller统一进行处理命令,交由Model处理具体的业务。
经过处理Model更新后,通知View进行更新。
这种模式主要用于桌面程序,在windows程序中很常见。使用观察者模式实现,具体来说就是让View观察Model。像MFC的frame-document-view架构,如果document改变了,他会主动通知View进行update。
2.MVC2模式
但是在WEB应用程序中,Model(在Java中通常是JavaBean)的数据更新后,无法通知View进行更新(而且view通常很多,需要选一个),因此,在WEB应用程序中改为了MVC2模式。结构图如下:
View接受用户输入,并传递到Controller。
Controller统一进行处理命令,交由model处理具体的业务。
经过处理的Model更新后,Controller会选一个View,并forward到该 View ,附带把model放到( request,session) 参数中,这个view获得model然后显示。
3.区别
可以看到,Model是否能主动通知View就是MVC1和MVC2模式的主要差别。桌面程序可以做到,所以使用MVC1;Web程序由于Http协议的限制做不到,所以使用MVC2。