论文部分内容阅读
摘 要: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
关键词: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