与模式计划
在我前面的那篇再战MVC(二)最后也说到了:MVC本身就是一个非常复杂的系统,所以采用MVC实现Web应用时,如果采用现成的MVC框架,在此之下进行开发,能够达到事半功倍的效果。因为如果说要想在一些有限的时间里构造出来一个正确并且是可维护性的应用程序,我们必须有一个好的工具或者框架来建立表现层,纵观目前在开源社区中针对Web表现层的开源框架webwork,struts等,struts是一个不错的选择,因为Struts有完整的文档并且相对来讲比较简单。
对MVC体系结构还有一些常用设计模式有了一定的认识之后,回过头来再次看那本Struts开发者写的struts in action,特别是发现第二章的“研究Struts体系结构”能让你看了对MVC模式以及Struts的体系结构有更深刻的理解,个人感觉这一章是整本书的精华的地方。
Model 1跟Model 2
有关Model 1跟Model 2的介绍在之前的再战MVC的两篇文章中已经介绍了,总的来说就是Servlet可以应付控制流,而 JSP则可专注于编写HTML的任务。
控制层使应用层和视图去耦合
认为区别于MVC 的一个原因是,观察者/通知模式不能在web 环境内工作 Model 2 并不合适。HTTP 是一个 “拉” 的协议: 客户请求然后服务器响应。没有请求就没有相应。观察者模式需要一种“推”协议来进行通知,以便服务器能在模型改变时将信息推送到客户端。书上提到,虽然也有一些方法能模拟将数据推送到客户端,但这和基本情况相悖,并且会视为是权宜的修补。
MVC 通常表示为3个互相连接的组件
拟新开发5座铁矿山 上图是典型的MVC模式,经常被表示为:一个互相连接的三角形。对于一个基于Web的应用程序而言,是很难维护该三角形的“改变通知 (state query/change notification)”这一部分。这些东西在所有资源都在一台服务器上,而且客户端保持一个开放连接的情况下工作得非常好。如果资源分布在不同的服务器上,并且客户端不能维护一个开放的连接情况下,工作的并不理想。许多分布式系统架构,包括web应用,在视图进行状态查询的概念时退缩了。针对这种不同,绝大多数情况是入分层的概念来设计的,层内的对象可以和同一层或者相邻层的对象进行通信。在一个复杂应用中,这可以在添加组件时,防止依赖关系呈指数增长。对于分布式应用程序而言,“分层“模式是设计中的核心模式。
正如上图上所示,使用平面设计而不是传统的MVC设计方式。控制层处于表现层(视图)和应用程序逻辑(模式)之间。
从MVC 上下文中,引入层模式将状态改变和状态查询的职责加于控制器之上,并伴随 着改变通知。
每一个模块的主要职责并没有改变。流程有轻微改变,即查询状态和改变通知都必须通过控制器。另一个改变是当视图(表现层)生成动态内容时,它使用由控制器提供的数据而不是直接由模式提供的数据。所以说这样的改变使得视图更加和模式无关了,即由控制器来选择数据并显示数据的视图,这样就从根本上去除了View 和 Model的耦合。
南宁医院男科哪家医院好眼干怎么办
中山白癜风专科医院
- 上一页:物业
- 下一页:与框架的第一次亲密覆盖
-
夜读·房企融资|保利发展、绿城房地产发布融资计划案
【后期证券】 信和发展长须出版发行30亿元浅绿色后期证券 5年末20日,据上...
2023-09-23
-
公告精选:中国电建拟定增募资不超150亿元;清源股份在欧洲销售的光伏天花板支架产品销售额占比较小
【热点】 阳和光电源:将会将大力提升电站开发设计、储能等工程施工建设...
2023-09-14
-
苦瓜甜味的源头是哪儿?只需去掉这部分,没甜味还去火,好吃营养
菱角成份的小河是哪儿?只用除去这部分,没成份还去火,美味饱微量元素 ...
2023-09-10
-
上海将设置固定、流动、齐备三类核酸采样点
今天(19日)上午出席的上海市疫情联合国开发计划署临时工新闻网发表会上,...
2023-09-07
-
投资者发言:一董秘,在梅州基地在建2万吨铜箔产能,2020年11月开工建造...
投资者反问:一董秘,在丰顺基地万州2万吨铜箔降低成本,2020年11月开工建...
2023-09-06
-
60岁的年龄,20岁的身材,这6位越老越帅气的男明星,太专一了
近几年,网络上涌现了一个名词——中所年有种男。 一般所指中所年男人长...
2023-09-04