cocoon的文档中有这样一段话:
Traditional Web
applications try to model the control flow of a Web application by
modeling the application as a finite state machine (FSM). In this
model, the Web application is composed of multiple states, but the
application can be only in one state at a time. Any request received by
the application transitions it into a different state. During such a
transition, the application may perform various side-effects, such as
updating objects either in memory or in a database. Another important
side-effect of such a transition is that a Web page is sent back to the
client browser.
Servlet模型提供的正是一个最基本的基于IO的FSM模型:应用程序的状态变量存储在session中,应用程序根据用户请求更新session中
变量的值。这里一个隐含的假设是session中的变量是不相关的,因为servlet模型中没有提供任何机制来同时操纵一组相关变量,例如我们在
session中存放了三个变量name, title, data,
如果我们希望删除这三个变量,我们必须通过三次独立的函数调用来完成,servlet模型本身并不知道这三者之间的关联关系。
当web应用程序逐渐变的复杂起来,这个最简单的FSM模型就显得力不从心了。因此发展出了MVC模型(Model-View-Controller),
这是对有限状态机的一个精细化。首先我们识别出session,request中的变量之间存在相关性,而且变量之间的地位也是不平等的,某些变量的改变
将直接导致另外一些变量的改变。因此变量根据相关性被聚合起来,构成很多对象。应用程序的状态不再由一个个独立的变量构成,而是由具有更丰富语义的对象构
成。在大的结构方面,一些基本的对象被分离出来,构成一个核心,即model层, 而外围的变量被分割在不同的view中。
在流行的struts和webwork等MVC框架中,变量的聚合都定义在action层,
各个相关的action并没有汇聚成一个具有独立意义的对象,似乎仅仅做到了model层和view层的分离,在model层内部并没有建立合适的模型,
即struts和webwork等建立的MVC模型中隐含假定整个model层内部是没有结构的(注,我对struts和webwork的了解限于简单介
绍文档,这里的说法可能并不准确)。一些更加精细的MVC架构直接支持model层的分解,即model层由一系列不相关的对象构成,每个对象具有从属于
自己的action。沿着这个复杂性发展的级列继续下去,我们可以知道,当对象之间的交互变得更加复杂的时候,我们需要框架本身能够直接支持model层
对象之间的相关性。最简单的控制关系是树形结构,即父节点控制子节点,父节点销毁的时候子节点自动销毁。这样就构成所谓的HMVC
(Hierarchical
MVC)模型。在这个模型中,model层由一系列的对象组成,而且这些对象被分割到不同的package中,组成一个树形结构.
分享到:
相关推荐
PHPMVC架构搭建
通过多维度对传统的MVC和前后端分离架构进行对比,深入对比了两种架构方式的优缺点,还有MVC和MVVM的区别与联系。
主要包括MVC的设计思想、实现和原理,以及和其他人的理解。 一、MVC设计思想 二、MVC设计模式的实现 三、MVC设计模式的扩展 四、MVC的优点 五、MVC的不足
Qt使用mvc架构进行编程
mvc架构实例.rarmvc架构实例.rarmvc架构实例.rarmvc架构实例.rarmvc架构实例.rar
本项目是一个图书管理项目,使用eclipse开发环境,结合mvc架构界面友好!
java 山寨qq 聊天工具(基于mvc三层架构,附 mvc架构模式pdf说明文档)支持开源
用于介绍mvc的架构,是初学者入门级的好教材
Web架构——MVC Web架构——MVC Web架构——MVC Web架构——MVC
通过一个动态计算单元格高度的工程代码,教你快速理解MVC架构模式,正确理解MVC结构模式
利用java语言开的MVC架构的系统
java学生信息管理系统MVC架构
java mvc架构在线考试系统
一个最简单Jsp-Servlet的MVC架构例子,适合初学者。带数据库脚本和全部jar。适合初学者理解MVC架构。
C#MVC架构、工厂模式的区别 内容很好 讲解很清晰 受益匪浅
非常实用的。采用jsp servlet MVC架构 请大家参考
MVC架构 学习Demo
《Web开发新体验:ASP.NET3.5MVC架构与实战》内容基础、全面,适合ASP.NET3.5MVC的初学者学习,同时,也可作为相关培训机构或高等院校的教学参考用书。ASP.NET3.5MVC框架,是微软今后开发Web应用程序的一个主流技术...
配置特别说明:1、请在您的环境根目录下建立目录mvc,然后把项目放到mvc目录下,然后输入127.0.0.1/mvc 即可访问2、请导入以下数据库。特别说明:如果您把项目配置在根目录请将index.php中的:define('APP_URL','/mvc...
中国象棋(MVC架构)