浅谈MVC模式

来源 :读天下 | 被引量 : 0次 | 上传用户:nice_hope
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:MVC是一种源于桌面程序的架构模式,它的基本思想是把程序界面和业务逻辑分开,这样便于软件的后期维护,同时也方便开发时期分工及管理,MVC有很多优点所以现在已经被广泛地应用于web开发中。本文将介绍MVC模式的概念,并对各个层次的功能进行详细的描述以及阐述MVC模式的处理过程和总结MVC模式的优缺点。
  关键词:MVC;视图;模型;控制器
  一、 MVC模式概念
  MVC的英文全称是Model-View-Controller。它的核心思想是有效地组合“视图”,“模型”和“控制器”。
  在这种模式中,Servlet用来处理请求的事务,充当了控制器(Controller即“C”)的角色,Servlet负责响应客户对业务逻辑的请求并根据用户的请求行为,决定将哪个JSP页面发送给客户。JSP页面处于表现层,也就是视图(View即“V”)的角色。JavaBean则负责数据的处理,也就是模型(Model即“M”)的角色。
  Servlet JSP JavaBean(MVC)模式适合开发复杂的web应用,在这种模式下,Servlet负责处理用户请求,JSP负责数据显示,JavaBean负责封装数据。Servlet JSP JavaBean模式程序各个模块之间层次清晰,web开发推荐采用此种模式。
  二、 视图(View)
  视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接受用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。
  对于Web应用来说,可以概括为HTML界面,随着应用的复杂性和规模性,界面的处理也变得具有挑战性。一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。业务流程的处理交予模型(Model)处理。比如一个订单的视图只接受来自模型的数据并显示给用户,以及将用户界面的输入数据和请求传递给控制和模型。
  对于基于请求/响应方式的主体。模型表示业务数据和业务逻辑。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
  三、 模型(Model)
  模型是应用程序的主体部分。模型表示业务数据和业务逻辑。就是业务流程/状态的处理以及业务规则的制定。一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。
  业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。MVC设计模式告诉我们,把应用的模型按一定的规则抽取出来,抽取的层次很重要,这也是判断开发人员是否优秀的设计依据。抽象与具体不能隔得太远,也不能太近。MVC并没有提供模型的设计方法,而只告诉你应该组织管理这些模型,以便于模型的重构和提高重用性。我们可以用对象编程来做比喻,MVC定义了一个顶级类,告诉它的子类你只能做这些,但没法限制你能做这些。这点对编程的开发人员来说非常重要。
  业务模型还有一个很重要的模型那就是数据模型。数据模型主要是指實体对象的数据保存。比如将一张订单保存到数据库,从数据库获取订单。我们可以将这个模型单独列出,所有有关数据库的操作只限制在该模型中。
  四、 控制器(Controller)
  控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的提交按钮来发送HTML表单时,控制器接受请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。
  划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。控制层并不做任何的数据处理。例如,用户点击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
  五、 MVC的处理过程
  首先用户通过视图层发出请求,接着控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器将处理后的数据传递给视图层,并通过视图层更新显示。
  六、 MVC的优点
  (一) 耦合性低
  所谓耦合性就是模块代码之间的关联程度。利用MVC框架使得View(视图)层和Model(模型)层可以很好地分离,这样就达到了解耦的目的,所以耦合性低,减少模块代码之间的相互影响。
  (二) 可扩展性好
  由于耦合性低,添加需求,扩展代码就可以减少修改之前的代码,降低bug的出现率。
  (三) 模块职责划分明确
  主要划分层M,V,C三个模块,利于代码的维护。
  七、 MVC的缺点
  1. 由于实施MVC模式过程而产生的开销。设计MVC模式需要有经验的分析人员对系统进行分析;类的数量及文件数量的增加。采用MVC模式设计会增大应用程序的代码量。
  2. 由于设计MVC模式时分析不够,设计不当而引起相反的效果,把属于一个模块的分开,把不相干的模块聚在一起。对属于一个实体不同方面的严格区分导致了一个紧凑结构,使得测试和维护的工作量大幅度增加,每一次变动牵涉到许多本不相干的模块的变动。
  八、 总结
  通过对MVC的探讨,我们知道它是用来分割页面和数据库访问的框架,降低了两者的耦合度,同时通过Controller的控制,也使系统更加的灵活,使我们的代码更健壮,复用性更强,但是凡事都有他适用的范围,我们不能觉得它好,就瞎用,有时可能会适得其反,因此MVC的学习还需要我们以后慢慢探讨。
  参考文献:
  [1]孙琦.浅议MVC设计模式[J].科技信息:科学·教研,2007(16):74.
  [2]李谱华.浅析MVC设计模式及其应用[J].科技信息,2010(16):662-663.
  [3]刘方军.基于MVC三层架构模式的研究与应用[D].广东工业大学,2011.
  作者简介:
  彭诗媛,阚洪,重庆市,重庆工程学院。
其他文献
摘要:爱是人类最美的语言,有爱才有教育。教师对学生的爱,有时是一种教育手段,有时是一种教育观念。只有正确和熟练地学会用爱的方法,把爱化成股股清泉,倾注于学生的心灵,才能使他们全面健康地成长。多年的班主任工作使我深深地体会到:只有爱心付出,才有真心回报。伟大的教育家陶行知先生曾经说过“没有爱就没有教育”,班主任的工作更应该注重爱的灌注。  关键词:爱的灌注;班主任工作;学生;管理  “没有爱就没有教
摘要:幼儿攻击性行为以及相应的对策研究一直是心理学、教育学等学科的重要课题,特别是近几年,随着人们对于公共健康与心理健康重要性的认识越来越清晰,幼儿攻击性行为的研究的重要意义逐渐显现出来,同时也取得了较大的成果及进展。  关键词:幼儿攻击性行为;因素;教育策略  幼儿攻击性行为可谓幼儿身上常见的一种行为,更是幼儿在成长过程中重要的组成部分,这对幼儿的身心健康与品德的发展与形成都有着极为不利的影响。
如果真如马云所说电子商务占零售市场一半以上,购物者会失去很多乐趣,人也就快成了机器。  马云与王健林的赌约,让人感觉非常有意思。马云显然是被“双11”的成功搞兴奋了,逢人便说电子商务颠覆传统经济。于是王健林跟马云打了个赌,10年后如果电子商务占了零售总额的一半以上,王健林愿意给马云一个亿,反之马云掏一个亿给王健林。据说马云没有接招,而是愿意同他赌一块钱。  马云和王健林,一个是电子商务巨头,一个是
摘要:对于青少年田径运动员未来的发展,最重要的是其基础训练。目前,在我国青少年田徑训练中存在许多问题,严重影响着我国田径运动的发展,如专项化训练过早、忽视基本技术的教学、过于急功近利等。为了解决青少年田径基础训练弊端,必须实现思想观念的转变,并深入开展教学,运用科学的训练方式实现训练的有效性。  关键词:青少年;田径;基础训练;问题  在竞技体育运动中,青少年田径基础训练是一项极其重要的内容。在科
摘要:随着新课程的改革,高中物理教学不断呈现出多样化、创新性的教学模式,进而不断在教育发展中取得突破性的进展。同时,物理教师们在新课改的新要求下也取得不错的成绩和效果。但是,在高中物理探究教学模式中也出现了不容忽视的课堂误区,这些误区将会对高中物理课堂的教学质量产生严重的影响,因此,探究其中的误区就显得十分必要。  关键词:高中物理;课堂教学;误区  科学是探索精神的重要内容,教育的目标不仅仅在于
摘 要:随着当前新课标改革的不断前进,除了语文、数学等学科之外,教育部越来越重视对于学生的英语教学。英语是世界通用的语言,在国际交往中发挥着十分重要的作用。在初中阶段,老师进行英语教学,有助于帮助学生掌握一门新的语言,可以帮助学生毫无障碍地阅读国外的书籍,观赏国外的电影,了解其他国家的风土人情,丰富自己的见识,提高自己的科学文化素养,同时可以提高学生的语言能力,和外国人流畅地交流,交到许多好朋友。
2013年被称为互联网金融入侵元年,各大银行、互联网公司、证券公司等忙活着“金融圈地”,互联网金融市场一下子热闹起来,而热闹的背后迎来的却是一场又一场“论战”,先是“取缔余额宝”,随后又传出互联网金融监管政策即将出台,并可能导致互联网“宝宝们”高收益率走低等。  而事实上,无论市场和监管怎么折腾,互联网“宝宝们”仍旧获得了草根阶层的力挺。据某门户网站的网络调查数据显示,超过九成的网友力挺各类“理财
摘要:通过改进实验装置,让实验操作更为简便安全,学生参与度高。充分调动学生的学习积极性。  关键词:乙醇;酸性重铬酸钾溶液;实验;氧化还原  实验目的:  学会中学化学实验中探究性实验设计的一般过程与方法  实验要求:  1. 自行发现实验探究问题;  2. 自行设计探究性实验方案;  3. 实验实施与实验问题发现及记录;  实验设计方案:  一、 探究问题的提出  化学是一门以实验为基础的学科。
摘 要:在语文教学中,“语文主题”学习全面提高了学生的语文素养,提高了学生的作文水平,陶冶了学生的情操。  关键词:语文主题;素养;情操  阅读量少是困扰语文教学的重要方面。以前的语文课堂,只围绕课本上的几篇课文翻来覆去地讲,语文教学枯燥无味,习作更是老师和学生头疼的事。一上习作课,有的同学便会愁眉苦脸,认为没的写,无处下手,即便有的写,写出来的文章干干巴巴,一点也不生动。自从实行了“主题学习”,
摘 要:一直以来文化冲突都是跨文化交际比较常见的问题。许多中国教师在对外进行汉语教育中,都会因为文化差异导致教学问题。事实上语言作为文化的一部分,语言和文化有着十分密切的联系。语言需要依托于文化,文化又需要借助语言来体现。对外汉语教学不仅是语言的教学,同时也是文化的传播。假使教师能够妥善利用文化及语言的共同点,那么语言教学不仅会更加得体,同时也能更加顺利,对语言教学起到助推作用。但如果采取方式不当