Posted on 2007-09-28 10:27
红子 阅读(2873)
评论(1) 编辑 收藏 所属分类:
J2EE 综合 、
Struts 、
设计模式
基本概念:
M:Model 程序的业务
V:View 程序的界面
C:Controller 程序的控制部分
1.MVC1模式
view接受用户输入,并传递到controller.
controller统一进行处理命令,交由model处理具体的业务.
进过处理model更新后,通知view进行更新.
这种模式主要用于桌面程序,使用观察者模式实现,具体来说就是让View观察Model,而用户交互控制的地方用匿名类的方式统一放在controller中.
2.MVC2模式
view接受用户输入,并传递到controller.
controller统一进行处理命令,交由model处理具体的业务.
进过处理model更新后,controller会选一个view并把model内容传递(request,session)给它(forward).
然后view进行显示.
3.区别
可以看到,model是否能主动通知view就是二者的主要差别.桌面程序可以做到,所以使用MVC1;Web程序由于Http协议的限制做不到,所以使用MVC2.
附录:
mvc1 模式:
view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,会通知view需要update
view更新后向用户显示
mvc2 模式:
由于mvc1中,model可以通知view,然后view就可以被更新,这在windows程序中很常见,像MFC的frame-document-view架构,如果document改变了,他会主动通知view进行update
但是在web中,作为model的java bean更新后,无法调用作为view的jsp(而且view通常很多,需要选一个),因此改为mvc2模式:
view接收用户输入,把命令传到controller
controller处理命令,更新model
model被更新后,controller会选一个view并forward到这个jsp,附带把model放到request参数
这个view获得model然后显示