MVC设计模式中的“视图模型”与“视图”

来源 :计算机光盘软件与应用 | 被引量 : 0次 | 上传用户:LIGUOQIANG630
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:MVC是八十年代Xerox PARC为Smalltalk发明的一种软件设计模式,至今已被广泛应用到软件设计与研发中。然而,在软件项目研发与教学中经常会遇到对MVC理解不清的问题,尤其是对“视图模型”和“视图”的概念不清,导致对MVC模型的错误应用。本文通过实例详细讲解“视图模型”和“视图”的异同,从而使读者更好的应用MVC设计模式。
  关键词:MVC设计模式;视图模型;视图
  中图分类号:TP393.09
  MVC全称为Model-View-Controller,翻译成中文就是模型-视图-控制器的意思,它是一种软件设计思想,采用这种设计思想可以使业务逻辑和数据显示分离,既可以提高程序的可读性和易维护性,又可以提高软件研发的工作易分解性和项目管理的可控性。
  然而,在实际项目中,经常会遇到对MVC理解不清,从而导致增大程序的复杂性,破坏程序的可读性。造成这一问题的主要原因是对“视图模型”和视图的错误理解上。因此,本文通过实例讲解来详细的说明“视图模型”和“视图”,使读者能够更好应用MVC设计模式。
  1 MVC模型的概念及作用
  MVC是一种设计思想,是一个框架模式,它对应着应用程序的输入、处理和输出。使用MVC的应用由三个核心组成:模型、视图、控制器。它们各自处理自己的任务。
  1.1 模型
  模型是指所研究的系统、过程、事物或概念的一种表达形式,也可指根据实验、图样放大或缩小而制作的样品。MVC中的模型通常表示企业数据和业务规则。用来表示企业数据的模型被称作数据模型,比如EJB中的实体Bean、.NET中的实体数据模型等;用来表示业务规则的模型被称为业务逻辑模型,如EJB中的业务Bean、DAO等。
  1.2 视图
  视图是指用户看到的,并与用户实现交互的界面。在Web应用程序中,视图既可以是由HTML元素組成的界面,也可以是Adobe Flash、XHTML、XML/XSL、WML等一些可以由浏览器识别的标识语言。
  1.3 控制器
  控制器接受用户的输入并调用相应的模型并组建视图显示给用户,完成交互并满足用户的需求,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后再确定组成什么样的视图来显示返回的数据。
  2 视图模型和视图
  2.1 视图模型与视图异同
  从模型、视图、控制器的定义可以看出,视图模型是用来描述视图样式的特殊模型,在视图模型中既包括最基本的界面展现语言如HTML/XML/CSS/JS等,又包含数据占位符等特定编程语言下的标记信息。而视图是指用户所能看到的东西,既用户界面。
  2.2 视图模型与视图的请求/响应实例
  如图2所示,用户在客户端发出请求,此时与用户进行交互的是用户界面,用户界面就是视图。视图中包含了各种控件。用户通过点击、输入等操作向服务端发出请求,服务端首先由控制器负责调用对应用户请求的业务逻辑模型,该业务逻辑模型负责处理用户的请求,将数据模型实例化并根据视图模型组装视图,并将视图返回给客户端。客户端根据返回的视图更新用户界面。从而完成一个完整的请求响应周期。
  以目前比较流行的SSH框架为例,如图3所示,Struts2容器中的ActionServlet起到前端控制器的作用;StrutsAction起到普通控制器的作用;JSP起到了视图模型的作用;从某种意义上说Struts配置文件相当于数据模型。在Spring容器中,存在大量的业务逻辑组件,这些组件相当于业务逻辑模型(包括Hibernate容器的数据访问对象DAO)。在Hibernate容器中存在大量的实体类,这些实体类对应的是数据模型。
  从视图的定义可以知道,视图是指用户看到的“东西”。而JSP是存在于客户端的Struts2容器中,只能被容器识别的组件。因此,我认为JSP不能算作视图,而是一个“视图模型”。真正的视图是由JSP和数据模型组装后返回给浏览器的HTML页面。
  3 结束语
  因些,在应用MVC模型进行系统架构和程序设计时,要注意视图模型和视图是有区别的:视图模型是组成视图的重要组成部分。视图是业务逻辑模型将数据模型填充到视图模型中的产物。
  参考文献:
  [1]王斐.MVC设计模式中视图层的改进[J].科学技术与工程,2009-11,9(22).
  [2]孙卫琴.精通Struts:基于MVC的Java Web设计与开发[M].电子工业出版社.
  [3]吴建设.MVC设计模式在WEB应用程序中的研究与实现[J].2006,2.
  [4]MVC框架.百度百科.网络资料.
  作者简介:栗新雨(1978-),男,黑龙江人,工程师,硕士,从事软件设计与开发及相关教学改革工作。
  作者单位:北京信息职业技术学院,北京 100018
其他文献
好消息    谷歌正式推出超简界面  本报讯 谷歌上周宣布,将对所有用户开放极简界面。该界面只保留了谷歌标识、搜索框以及下方的“谷歌搜索”和“手气不错”两个按钮,其余的元素均被删除。当用户移动鼠标后,其他的界面元素便会恢复。对于采用这一界面的原因,谷歌指出,清爽、简约的方式为用户呈现出最重要的元素。    雅虎将与Facebook  扩大合作  本报讯雅虎与Facebook于上周宣布扩大合作关系,
本文针对规则切割的汉字碎纸片的拼接复原,通过读取碎纸片的灰度值,进行二值化处理,建立规则切割的汉字碎纸片的拼接复原模型,对二值图像矩阵与对应的列矩阵、边缘矩阵的处理,结合人工干预,获得正确的图片顺序,结果表明,拼接复原相似度很高。
利用1961—2015年宁夏逐日降水资料、NCEP/NCAR再分析资料及NOAA海温资料,分析了宁夏夏季极端降水的变化规律及其成因。结果表明:1)55年来宁夏夏季极端降水日数呈微弱减少趋
IDG讯5月22日,微软正式发布了新一代私有云及数据平台SQL Server 2012。微软大中华区副总裁兼市场战略部总经理谢恩伟表示:“微软的云平台和服务,从基础设施到数据平台,从端到云
利用WRF模式,从模式的不确定性角度来构造中尺度的集合预报,重点对比分析了不同物理参数化方案、物理过程随机扰动方案、积云对流参数化敏感参数扰动方案对中尺度对流复合体
本文在围绕学生学习计算机的实际应用能力的同时,根据现今计算机专业的教学出现的不足,探讨了新的计算机教学的方法与途径,并对这些方法与途径进行分类总结,使得大学生就业与计算
随着我国网络信息技术的快速发展,作为信息服务系统中心领域,高校的图书馆的网络信息服务系统已经不再是传统的图书信息提供,满足大众的图书查找需求。而是更加体现出了个性化服
基于Origin强大的绘图功能,对大学物理中的抛体运动、简谐振动和光栅衍射进行了数值计算和图形绘制,从所绘制图形上可以直观地观察到所研究物理量之间的关系,提高学生对知识的理
随着WDM系统传输距离和光纤中光功率的增加,光纤的非线性效应对系统的影响及其优化成为研究关键。本文对海底光缆传输系统中非线性效应对系统的影响及其优化进行了分析。根据
ClientServer体系结构的辉煌时期已过,多层分布式应用技术正方兴未艾,业界主流分布式对象技术主要有三种架构标准:DCOM、EnerpriseJavaBeansRMI以及CORBA。CORBA技术正在不断地