论文部分内容阅读
摘要:本文以音乐监测系统为实例介绍将MVC设计模式应用到实际的开发中,通过对MVC模式的理解和运用,能很好地将软件模块化,分离系统的数据控制和数据表示功能,有利于开发团队间的分工与合作,尤其在开发大型复杂的项目时,这种模式有利于加快项目进度,缩短开发周期,增强软件的可维护性和代码重用性,提高开发效率和项目质量。
关键词:MVC设计模式;模型;视图;控制器;yii网络框架;音乐监测系统
1 背景
随着教育事业的迅猛发展,有关素质教育的改革也越来越受到重视,而目前国内还缺乏系统完整的测评体系。根据国内的这种状况,我们设计了一套相对完整的测评体系。该测评体系是基于MVC设计模式的。
2 MVC模式
MVC是一种设计模式,它强制性地把应用程序的输入、处理、输出分开。MVC把应用程序分为三个核心模块:模型(model),视图(view),控制器(controller),它们分别担任不同的任务。
2.1 模型(Model)
模型是与问题相关数据的逻辑抽象,代表对象的内在属性,是整个模型的核心。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象,在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。
2.2 视图(View)
视图是模型的外在表现,是窗体控件的集合,通过store来加载数据并展现在界面上,界面控件的响应都写在controller里。view对controller的存在完全无知,也没有代码上的依赖。一个模型可以对应一个或者多个视图,视图具有与外界交互的功能,是应用系统与外界的接口:一方面它为外界提供输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种形式显示给外界。
2.3 控制器(Controller)
控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息,并将用户与视图的交互转换为基于应用程序行为的标准业务事件,再将标准业务事件解析为视图应执行的动作,同时,模型的更新与修改也将通过控制器来通知视图,从而保持各个视图与模型的一致性。
2.4 采用MVC模式的优点
将界面和模型有效分离,降低了模块之间的耦合度。在变更的情况下,模型和用户界面相互独立,不会影响整个系统。(1)同一个模型可对应多个视图,灵活性强。(2)模型独立于接口代码,因此具有良好的可移植性。
3 系统的设计
音乐监测系统的主要功能可以划分为:
(1)用户登录管理。根据功能权限不同将用户划分为:系统管理员(admin)、系统使用者(user)、系统查看者(demo)。
(2)使用者使用系统进行测试。系统随机从题库中的四个维度分别选出五道题组成综合测试题,使用者测试后系统根据使用者的答题情况给出相应的反馈。
(3)管理员实现题库管理。包括题目、选项、答案、所属模块、相关图片或音乐,并提供增加、删除、修改、查询这些基本功能。
由于篇幅的原因,图1只给出音乐监测系统的部分实现模块。
4 系统的实现
这个音乐监测系统的MVC模式是用网络框架yii实现的。开发环境是wamp。
4.1 yii框架
(1)和多数PHP框架类似,yii是一个MVC框架。Yii具有高度的可重用性和可扩展性,yii框架是纯面向对象的,Yii中的一切都是独立的可被配置,可重用,可扩展的组件。要运行一个Yii驱动的Web应用,需要有一个支持PHP5.1.0或以上版本的Web服务器。yii从一开始就仔细设计以适合严禁的Web应用开发。它既不是一个其他项目的衍生品,也不是一个第三方工作的组合。它是作者丰富的Web应用开发经验和对大多数流行的Web编程框架与应用的研究与思考的成果。
从yii应用的这个流程可以发现这和我们系统所需要的设计很相似,因此系统采用了yii这个网络框架。由于篇幅有限,MVC模式的详细设计主要对视图层进行说明。
(2)yii框架的视图层实现。yii框架的视图是一个包含了主要的用户交互元素的php脚本。每个视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。视图的名称与其视图脚本名称是一样的。
在视图脚本的内部,我们可以通过﹩this来访问控制器实例。同时,我们也可以在视图里以﹩this->属性名的方式来获取控制器的任何属性,这种调用方式是通过_get魔法方法实现的。一次较为完整的视图渲染过程在CController类的render函数中体现。当控制器中从模型(model)中拿到数据后,一般会执行render()方法创建视图。
对于不同的页面中共用的内容,虽然可以通过renderPartial方法渲染部分页面视图,但是必然存在对于数据部分的重复,因为这些视图都需要调用控制器提供的数据,从而产生耦合。因此yii框架提供了另一个独立的视图部件,称之为Widget。Widget增加了页面的复用度,减少了代码量。
4.2 wamp开发环境
WAMP就是Windows+Apache+MySql+php,也就是在Windows操作系统上用php语言结合ApacheWeb服务器、MySQL数据库开发网站。
4.3 数据库的设计
依据系统所要实现的功能:涉及到的数据库有problem:
类型和字段以及描述如下:
integer ﹩PID(主键,题目的编号)
string ﹩title(题目)
string ﹩choice1(A选项)
string ﹩choice2(B选项) string ﹩choice3(C选项)
string ﹩choice4(D选项)
string ﹩choicepng(图片,有图片时则插入图片)
string ﹩anwser(答案)
string ﹩remark(解析)
string ﹩category(题目所属维度)
string ﹩sequence(题目的编号)
string ﹩audio(关联的音频)
problem表是数据库中最主要的内容,这些字段刚好可以把problem的所有属性包含在内而又不累赘。
5 总结
随着网络技术的迅速发展个J2EE平台的广泛使用,多层web应用的开发已经成为主流。但是在多层的web体系结构设计中,普遍存在着程序可重用度低、程序应变能力较弱等不足。开发过程中,为了解决这些问题,引入了能松散耦合应用的MVC设计模式,提高了开发质量、缩短项目开发周期、降低项目开发成本,并且使得系统流程清晰,易于扩展和维护。
本文从MVC设计模式的理论着手,对它的体系结构和实现技术进行了简单额介绍,并结合音乐监测系统的实际应用需求,采用了MVC设计模式并实现了音乐监测系统。
参考文献:
[1] 姚慧广,赵岳松.Web编程中MVC模型的应用[J].微机发展,2002,11(3):9-10.
[2] wikipedia.MVC https:∥zh.wikipedia.org/wiki/MVC.
[3] 王付娟.MVC设计模型[J].硅谷,2009(7):29.
[4] yii框架的视图层实现.http:∥www.phppan.com/2013/02/yiiframework-view/.
[5] 百度百科yii.http:∥baike.baidu.com.cn/view/351219.htm.
[6] 戴一平.计算机与现代化2011年第三期MVC设计模式在PHP开发中的应用.
[7] 阮彤,李京,冯东霄.基于Java的应用服务器的设计与实现计算机研究与发展.
[8] 卫索琪.北京工业大学工学硕士学位论文[D].基于MVC模式的一种web应用框架.
[9] 毕建信.武汉大学申请工学硕士学位论文[D].基于MVC设计模式的web应用研究与实现.
关键词:MVC设计模式;模型;视图;控制器;yii网络框架;音乐监测系统
1 背景
随着教育事业的迅猛发展,有关素质教育的改革也越来越受到重视,而目前国内还缺乏系统完整的测评体系。根据国内的这种状况,我们设计了一套相对完整的测评体系。该测评体系是基于MVC设计模式的。
2 MVC模式
MVC是一种设计模式,它强制性地把应用程序的输入、处理、输出分开。MVC把应用程序分为三个核心模块:模型(model),视图(view),控制器(controller),它们分别担任不同的任务。
2.1 模型(Model)
模型是与问题相关数据的逻辑抽象,代表对象的内在属性,是整个模型的核心。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象,在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。
2.2 视图(View)
视图是模型的外在表现,是窗体控件的集合,通过store来加载数据并展现在界面上,界面控件的响应都写在controller里。view对controller的存在完全无知,也没有代码上的依赖。一个模型可以对应一个或者多个视图,视图具有与外界交互的功能,是应用系统与外界的接口:一方面它为外界提供输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种形式显示给外界。
2.3 控制器(Controller)
控制器是模型与视图的联系纽带,控制器提取通过视图传输进来的外部信息,并将用户与视图的交互转换为基于应用程序行为的标准业务事件,再将标准业务事件解析为视图应执行的动作,同时,模型的更新与修改也将通过控制器来通知视图,从而保持各个视图与模型的一致性。
2.4 采用MVC模式的优点
将界面和模型有效分离,降低了模块之间的耦合度。在变更的情况下,模型和用户界面相互独立,不会影响整个系统。(1)同一个模型可对应多个视图,灵活性强。(2)模型独立于接口代码,因此具有良好的可移植性。
3 系统的设计
音乐监测系统的主要功能可以划分为:
(1)用户登录管理。根据功能权限不同将用户划分为:系统管理员(admin)、系统使用者(user)、系统查看者(demo)。
(2)使用者使用系统进行测试。系统随机从题库中的四个维度分别选出五道题组成综合测试题,使用者测试后系统根据使用者的答题情况给出相应的反馈。
(3)管理员实现题库管理。包括题目、选项、答案、所属模块、相关图片或音乐,并提供增加、删除、修改、查询这些基本功能。
由于篇幅的原因,图1只给出音乐监测系统的部分实现模块。
4 系统的实现
这个音乐监测系统的MVC模式是用网络框架yii实现的。开发环境是wamp。
4.1 yii框架
(1)和多数PHP框架类似,yii是一个MVC框架。Yii具有高度的可重用性和可扩展性,yii框架是纯面向对象的,Yii中的一切都是独立的可被配置,可重用,可扩展的组件。要运行一个Yii驱动的Web应用,需要有一个支持PHP5.1.0或以上版本的Web服务器。yii从一开始就仔细设计以适合严禁的Web应用开发。它既不是一个其他项目的衍生品,也不是一个第三方工作的组合。它是作者丰富的Web应用开发经验和对大多数流行的Web编程框架与应用的研究与思考的成果。
从yii应用的这个流程可以发现这和我们系统所需要的设计很相似,因此系统采用了yii这个网络框架。由于篇幅有限,MVC模式的详细设计主要对视图层进行说明。
(2)yii框架的视图层实现。yii框架的视图是一个包含了主要的用户交互元素的php脚本。每个视图有一个名字,当渲染(render)时,名字会被用于识别视图脚本文件。视图的名称与其视图脚本名称是一样的。
在视图脚本的内部,我们可以通过﹩this来访问控制器实例。同时,我们也可以在视图里以﹩this->属性名的方式来获取控制器的任何属性,这种调用方式是通过_get魔法方法实现的。一次较为完整的视图渲染过程在CController类的render函数中体现。当控制器中从模型(model)中拿到数据后,一般会执行render()方法创建视图。
对于不同的页面中共用的内容,虽然可以通过renderPartial方法渲染部分页面视图,但是必然存在对于数据部分的重复,因为这些视图都需要调用控制器提供的数据,从而产生耦合。因此yii框架提供了另一个独立的视图部件,称之为Widget。Widget增加了页面的复用度,减少了代码量。
4.2 wamp开发环境
WAMP就是Windows+Apache+MySql+php,也就是在Windows操作系统上用php语言结合ApacheWeb服务器、MySQL数据库开发网站。
4.3 数据库的设计
依据系统所要实现的功能:涉及到的数据库有problem:
类型和字段以及描述如下:
integer ﹩PID(主键,题目的编号)
string ﹩title(题目)
string ﹩choice1(A选项)
string ﹩choice2(B选项) string ﹩choice3(C选项)
string ﹩choice4(D选项)
string ﹩choicepng(图片,有图片时则插入图片)
string ﹩anwser(答案)
string ﹩remark(解析)
string ﹩category(题目所属维度)
string ﹩sequence(题目的编号)
string ﹩audio(关联的音频)
problem表是数据库中最主要的内容,这些字段刚好可以把problem的所有属性包含在内而又不累赘。
5 总结
随着网络技术的迅速发展个J2EE平台的广泛使用,多层web应用的开发已经成为主流。但是在多层的web体系结构设计中,普遍存在着程序可重用度低、程序应变能力较弱等不足。开发过程中,为了解决这些问题,引入了能松散耦合应用的MVC设计模式,提高了开发质量、缩短项目开发周期、降低项目开发成本,并且使得系统流程清晰,易于扩展和维护。
本文从MVC设计模式的理论着手,对它的体系结构和实现技术进行了简单额介绍,并结合音乐监测系统的实际应用需求,采用了MVC设计模式并实现了音乐监测系统。
参考文献:
[1] 姚慧广,赵岳松.Web编程中MVC模型的应用[J].微机发展,2002,11(3):9-10.
[2] wikipedia.MVC https:∥zh.wikipedia.org/wiki/MVC.
[3] 王付娟.MVC设计模型[J].硅谷,2009(7):29.
[4] yii框架的视图层实现.http:∥www.phppan.com/2013/02/yiiframework-view/.
[5] 百度百科yii.http:∥baike.baidu.com.cn/view/351219.htm.
[6] 戴一平.计算机与现代化2011年第三期MVC设计模式在PHP开发中的应用.
[7] 阮彤,李京,冯东霄.基于Java的应用服务器的设计与实现计算机研究与发展.
[8] 卫索琪.北京工业大学工学硕士学位论文[D].基于MVC模式的一种web应用框架.
[9] 毕建信.武汉大学申请工学硕士学位论文[D].基于MVC设计模式的web应用研究与实现.