[用英文介绍这幅图片 150词以上]This picture tell us about chinese wedding. Unlike western wedding, chinese wedding would like to wear red clothes, red means some kind of good things will happ...+阅读
MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器"。MVC应用程序总是由这三个部分组成。Event(事件)导致Controller改变Model或View,或者同时改变两者。只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新。类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己。MVC模式最早是smalltalk语言研究团提出的,应用于用户交互应用程序中。smalltalk语言和java语言有很多相似性,都是面向对象语言,很自然的SUN在petstore(宠物店)事例应用程序中就推荐MVC模式作为开发Web应用的架构模式。MVC模式是一种架构模式,其实需要其他模式协作完成。在J2EE模式目录中,通常采用service to worker模式实现,而service to worker模式可由集中控制器模式,派遣器模式和Page Helper模式组成。而Struts只实现了MVC的View和Controller两个部分,Model部分需要开发者自己来实现,Struts提供了抽象类Action使开发者能将Model应用于Struts框架中。 MVC模式是一个复杂的架构模式,其实现也显得非常复杂。但是,我们已经终结出了很多可靠的设计模式,多种设计模式结合在一起,使MVC模式的实现变得相对简单易行。Views可以看作一棵树,显然可以用Composite Pattern来实现。Views和Models之间的关系可以用Observer Pattern体现。Controller控制Views的显示,可以用Strategy Pattern实现。Model通常是一个调停者,可采用Mediator Pattern来实现。 现在让我们来了解一下MVC三个部分在J2EE架构中处于什么位置,这样有助于我们理解MVC模式的实现。MVC与J2EE架构的对应关系是:View处于Web Tier或者说是Client Tier,通常是JSP/Servlet,即页面显示部分。Controller也处于Web Tier,通常用Servlet来实现,即页面显示的逻辑部分实现。Model处于Middle Tier,通常用服务端的javaBean或者EJB实现,即业务逻辑部分的实现。
一、MVC设计思想 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。 视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。目前流行的EJB模型就是一个典型的应用例子,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但它不能作为应用设计模型的框架。它仅仅告诉你按这种模型设计就可以利用某些技术组件,从而减少了技术上的困难。对一个开发者来说,就可以专注于业务模型的设计。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员非常重要。 业务模型还有一个很重要的模型那就是数据模型J 菽P椭饕 甘堤宥韵蟮氖 ?保存(持续化)。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个连接,控制层接受请求后, 并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。 模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。模型、视图、控制器三者之间的关系和各自的主要功能,如图1所示。
二、MVC设计模式的实现
四、MVC的优点 大部分用过程语言比如ASP、PHP开发...
延伸阅读:
赫特福德大学怎么样想过去读本科有知道请详细介绍一下创建于1952年的赫特福德大学,一直具有特色鲜明的教育传统和革新精神。 由于在高等教育中不断革新和先锋作用,很快建立了卓越的声誉,成为英国高等教育界处于领先地位的一流大学...
新西兰留学林肯大学课程介绍有哪些呢林肯大学提供最多最全面的葡萄栽培和酿酒课程。强大的师资团队除了教学,都在林肯的葡萄栽培和酿酒中心开展研究工作。林肯大学同时拥有自己的葡萄庄园和酿酒坊(也就是学生的专...
有谁详细介绍一下Florida这个美国歌手!来自美国佛罗里达的Hip-Hop新人Flo Rida与T-Pain合作的那首大人气单曲《Low》在Billboard单曲排行榜上足足做了10周的冠军。在iTunes单曲下载排行榜上也至少做了8周左右的冠...
一级消防工程师介绍注册消防工程师是指经考试取得相应级别注册消防工程师资格证书,并依法注册后,从事消防设施检测、消防安全监测等消防安全技术工作的专业技术人员,分为高级注册消防工程师、一级...
请帮我介绍一下德福考试TestDaf(德福)是德语语言考试,对象是以赴德留学为目的的外国学习德语者或一般只想证明自己德语语言水平的人。 TestDaf是一种基于大学生活环境中语言表达能力的标准化中、高级...
请问CAD里墙体厚度具体怎么区分外墙和内墙要多少厚求详细介绍外周一圈都是外墙,外墙以内的都是内墙。外墙厚度为24公分,A轴上标有120的就是外墙一半的厚度。内墙厚度是18公分。 如果没有建筑结构的施工图纸的话,则可以根据经验大概的确定...
谁能具体介绍下加拿大移民政策太平洋加达移民帮您解答: 加拿大联邦移民部副部长Neil Yeates在出席17日举行的「加拿大移民顾问监管委员会」的第一次会议时,透露了联邦移民部目前正在致力修改的十项移民政策...
名探侦コナン的介绍时计じかけの摩天楼 / 名侦探柯南:引爆摩天楼 / Detective Conan: Skyscraper on a Timer 高山みなみ / 山崎和佳奈 / 神谷明 / 茶风林 / 山口胜平 / 松井菜桜子 / 高木渉 /...
英国曼彻斯特的公共交通工具谁给详细介绍一下英国曼彻斯特有以下公共交通工具: 1、付费公交车 在曼城除了走路跟自行车以外,最方便的大概就是公交车了。在这里坐公交车要注意的是到站的时候不会有广播提醒,所以需要事先查...