- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3.2MVC设计模式指导书v1.0
MVC设计模式操作模式指导书
通过本部分学习,能够完成如下几个目标。
了解什么是MVC设计模式
熟练掌握如何定义视图部分
熟练掌握如何定义模型部分
熟练掌握如何定义控制器部分
MVC设计模式最先是由Trygve Reenskaug提出的,并最先成功的应用在SmallTalk-80环境中,是许多交互式界面系统的构成基础。Microsoft的MFC基础类也遵循了MVC的思想。
MVC把交互系统的组成分解成模型、视图、控制器三种部件。
(1)模型部分,是业务的流程、状态的处理和业务规则的制定。它是软件所处理问题逻辑在独立于外在显示内容和形式情况下的内在抽象,封装了问题的核心数据、逻辑和功能的计算关系,它独立于具体的界面表达和I/O操作。
(2)视图部分,代表用户界面。它是表示模型数据及逻辑关系和状态的信息及特定形式展示给用户。它从模型获得显示信息,对于相同的信息可以有多个不同的显示形式或视图。
(3)控制器部分,接收用户请求,分配合适的模型和视图。它是用来处理用户与软件的交互操作的,其职责是控制提供模型中任何变化的传播,确保用户界面于模型间的对应联系;它接受用户的输入,将输入反馈给模型,进而实现对模型的计算控制,是使模型和视图协调工作的部件。通常一个视图具有一个控制器。
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都应反映到这些变化。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。
MVC设计模式被广泛的用到了许多的程序设计中,本章主要来介绍Java Web开发中使用到的MVC设计模式。
对于MVC的出现首先是解决了多个视图对应一个模型的能力,由于用户的需求是不断变化的,例如来自于数据库的一个表单就可能显示在不同的应用界面中;其次MVC中模型所返回的数据显示不会带有任何的格式,所以可以将其直接应用于接口;第三,MVC的三个应用层次中只需要改变一层,就可以满足用户的改变。
MVC中也存在一些缺点,例如使用MVC增加了系统结构和实现的复杂性;视图和控制器之间的联系比较紧密,如果失去控制器,则会限制视图的应用。
首先来看什么是Model 1模式。以前面编写的那个登录项目为例,那就是典型的使用Model 1模式开发的,整个Web项目都是由JSP页面构成。其中登录判断页LoginConf.jsp既要接受客户端的请求,还必须对其用户信息判断进行跳转。JSP页面既要负责显示还要负责控制,将控制逻辑和表现逻辑混在一起了。
使用Model 1模式开发代码重用性非常低,对于功能相似的代码只能选择拷贝的方式,而不是直接调用。这样使得整个JSP页面充斥着功能类似的代码。
使用Model 1模式开发程序扩展性也非常差,如果以后想要给程序扩展功能那是非常困难的。假如在一个JSP页面添加了某一功能,那么可能其他的很多页面都需要变动,甚至于整个Web应用都要修改。这种牵一发而动全身的应用,会使得后期异常的困难和繁琐。
JSP页面中大量充斥着Java脚本,这使得后期的维护非常困难。有时候一个地方出现错误就要到处去找。还有代码重用性,经常就是在使用拷贝、粘贴,都成了一种习惯了。不过使用Model 1模式来开发比较简单和方便。
使用Model 1模式来开发确实简单,所以如果是小型的Web站点,后期的更新和维护工作不是很大,就可以采用Model 1模式来开发。
Model 2是基于MVC架构的设计模式。MVC包含三个基本部分,分别是Model(模型)、View(视图)、Controller(控制器)。JSP只用负责显示,而控制器则由Servlet充当,模型由JavaBean充当。
Model 1的程序流程比较容易理解。用户提交信息给JSP页面,JSP接受用户提交的值并通过JavaBean连接数据库并操作数据库,然后将结果返回给用户。
Model 2中就是将JSP的功能简化了,在Model 1中JSP负责的东西过多了。Model 2中使用Servlet来充当控制器,而JSP只是充当显示。至于为什么会这样设计是因为在JSP里面进行接受参数和判断还有跳转等功能会用到大量的Java脚本代码。过多的Java脚本代码使得页面维护起来非常困难,而Servlet本来就是一个Java文件,这样使用Servlet来接受参数和判断还有跳转等功能是非常合适的。可以把Servlet看成是一个大管家,它负责所有的业务逻辑并通过JavaBean来操作数据库以及决定显示页面。 (Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。)
如果要使用MVC设计模式,那么控制器要使用Servlet。具体的
文档评论(0)