MVC设计模型及其应用

时间:2022-06-22 04:54:38

MVC设计模型及其应用

摘要: 本文介绍了MVC设计模式的概念,讨论了MVC设计模式在环境下的实现,并对MVC在环境下的应用特性进行了分析。

关键词: MVC设计模式 系统开发 实现 特性分析

一、引言

随着程序规模和复杂性的增大,人们在探讨一种合理的分析、设计和开发的模式。以使得软件系统尤其是大型软件系统能像制造机器一样。精确地分工制造,方便地组合使用,灵活地拆卸和简单地维修,使生产效率和软件重用度能够得到很大的提高。MVC模式就是这样一种应运而生的软件设计模式。

二、MVC设计模式

(一)MVC设计思想

在面向对象系统的设计中,类及其生成的对象是构成面向对象系统的最基本元素,采用设计方法组合这些元素,得到构成面向对象系统的构件。同时,这些构件的设计方法在经过不断的改进和完善后逐渐成型,成为构成面向对象系统的基本设计参考,称为设计模(Design Pattern)。

MVC英文即Model-View-Controller,是目前软件设计中比较流行的一种模式。MVC模式的出现不仅实现了功能模块和用户访问模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。

MVC将应用程序分为三个部分:模型(Model)、视图(View)、控制器(Controller)。它们的作用分别描述如下:

模型(Model)指的是真正完成任务的代码,包含应用系统的核心功能,表示一个应用系统的数据,并且包含访问、维护和管理这些数据的逻辑。所有属于应用系统持久状态的数据都应该保存于模型对象里。模型提供的服务必须足够适用于不同的终端。一个模型聚集了相关的数据和操作,以提供一个详细而精确的服务。一个模型的接口提供了访问和更新模型状态,以及执行封装在模型中的复杂进程的方法。模型服务被控制器访问,用于查询或更改模型的状态。当模型状态发生变化时,模型会通报给视图。在模型同界面分离的情况下,代码即可实现可管理性和可重用性。

视图(View)表示用户视图部分,是用户看到的与之交互的界面,其中并没有业务逻辑代码。对于视图的处理仅限于视图上数据的采集和处理以及用户的请求。

控制(Controller)是联系模型与视图之间的纽带,控制模型和视图之间的交互过程。它获取并翻译用户输入的动作,指定执行该动作的模型,或者根据用户的输入和执行的结果来选择下一个视图。可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。控制层相当于一个分发器,决定选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。例如,用户点击一个连接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。

(二)MVC优点

MVC设计模式具有条理清晰,易于扩展,运用可分布的特点,因此在系统开发中具有显著的优势。具体表现为以下三个优点:

1.模型、视图与控制器的分离,使一个模型可以被多个视图调用,提高了模型的利用率。

2.MVC设计模式可以使系统方便地支持其它新的客户端类型,除了运行在桌面型的浏览器外,还可以运行在PDA、带PDA功能的手机、WAP浏览器上。

3.由于MVC设计模式分离了数据的控制与显示,从而可以使开发者更容易协作开发,后台开发人员可以专注业务逻辑的编程,前台开发人员专注于用户交互的界面,从而缩短产品的开发周期。

三、MVC设计模式在基于系统开发中的实现

提供了实现MVC设计模式的天然环境。采code-behind代码来处理显示页面的用户交互,通过code-behind源代码文件,来实现逻辑控制代码、脚本语言、HTML的分离。应用系统按照三层Web结构划分为表示层、业务层和数据层。表示层由Web窗体组成,实现视图和控制器的功能;业务层包括业务实体组件和业务逻辑组件;数据层包括数据对象、数据访问组件等。由业务层和数据层共同实现模型的功能。以下用Web系统中常见的用户信息查询模块为例,探讨MVC设计模式在应用中的实现机制。

Model用来管理应用程序域的行为和数据。在本系统中将业务逻辑、与数据库连接和交互的公共操作封装在单独的类中,用专门的类来处理业务逻辑和数据逻辑,从而提高了代码的重用性。具体实现方式为:在公用的基本类库中,定义DataBase类作为公共数据库操作的基本类,在DataBase类中实现与数据库连接和交互的公共操作的代码如下:

Public class DataBase∥对数据库操作的基本类

{

Public DataSet RunSql(string SQL)//执行SQL语句,返回DataSet对象

{

SqlConnection conn=new SqlConnection(ConnStr)//建立SQL连接

SqlDataAdapter da=new SqlDataAdapter(SQL,Conn);

//创建SglDataAdapter对象并实现连接打开和关闭

DataSet ds=new DataSet();//创建DataSet对象

da.Fill(ds);//填充数据到DataSet中

da.Dispose();//释放SqlConnection对象

return ds;//返回DataSet对象

}

}

应用程序在数据访问层(DAO)中通过引用公用基本类中的方RunSql()来获取数据对象,下面的数据层实现所有用户的基本信息,具体方法如下:

Public class UserInfoDAO,BaseObdect

//继承所有数据对象的基类BaseObdect

{

Public DataSet GetUseInfo()//从数据库中获取用户信息

{

String sql=“select * from Userlnfo”;

//SQL查询语句

return db.RunSql(sql);//调用数据库操作的基本类中RunSql()方法

}

}

Controller不直接对Model中的数据逻辑进行操作,而是通过业务逻辑获取数据层(DAO)中的数据对象。Biz层由类(.CS)文件组成,其中业务逻辑组件封装了具体的处理逻辑。以下为根据一个用户ID返回对应的用户信息处理逻辑。

Public class UserInfoBiz

{

UserInfoDAO userInfo=new UserlnfoDAO();

//实例化对应数据逻辑类

Public DataSet GetSingleUserInfo(string ID);

//得到包含用户信息的―个DataSet

{

DataSet ds=userInfo.GetUserInfo();

//调用DAO层UserInfoDAO类中的GetUserInfo()方法

DataView dr=New DataView();//创建DataView对象

dv.Table=ds.Tables;//ds表数据复制到dv中

dv.RowFilter=“userID”+ID;//过滤符合ID用户的纪录

DataSet dsl=(DataSet)dv;//强制转换为DataSet对象

return(ds1);

}

}

最后,Controller中的事件调用Model中的业务逻辑方法,并且把响应提交到对应的视图组件以产生响应,完成对

客户端表单数据的描述。

四、基于的MVC设计模式特性分析

(一)优点

通过上述实现过程进行分析,在中用MVC模式开发的应用程序具有如下优点:

1.减少页面依赖性,提升代码复用。

通过页面中的代码分离,可降低系统设计的复杂性,减少页面中的重复代码。

2.系统结构清晰,增加系统的可扩展性。

MVC模式实现的应用程序具有极其良好的结构和可扩展性,它可以实现―个模型的多个视图,采用多个控制器,当模型改变时所有视图将自动刷新。控制器相互独立工作。

3.便于优化系统,提高系统性能。

由于每次向数据库请求,都要从数据库装载数据,通过公共的数据访问类和的内部机制可以把数据存放在高速缓存中,从而优化整个应用系统的性能。

4.系统模型独立,提高系统的可测性。

模型独立于视图,既可以在环境之外用第三方工具测试模型,也可以通过编写测试脚本实现自动化测试,大大提高测试的有效性和效率。

(二)不足之处

在中使用MVC模式也有不足之处:一方面,控制器不直接访向数据层,增加了代码的复杂性,对于一些简单的业务逻辑附加的额外代码所占比重比较大。另一方面,代码的分离增加了代码的维护成本,如果有涉及三者的变化时,在不同的文件中修改显然比在同―个文件修改花费的代价大。因此,在设计系统前权衡这样的代价是必不可少的。

五、结语

采用MVC模式来设计和开发软件系统,能够使整个系统结构清晰,容易进行模块划分,增强了各层、各模块的高内聚低耦合的特性,使各个模块的开发相对独立,使得软件的扩展性、复用性和维护性方面有了极大的提高,给系统的开发、扩展、维护带来了很大的方便,并且系统也可以很容易地加入新的业务和功能,从而适应各种需求的变化。

参考文献:

[1]邹鹏,尚雄等.基于MVC模式的客户关系管理系统设计[J].计算机应用研究,2005,(02):21-23.

[2]黎永良,崔杜武.MVC设计模式的改进与应用[J].计算机工程,2005,(9):96-98.

[3]陈川等.基于MVC设计模式构筑JSP/Servlet+EJB的Web应用[J].计算机工程,2001,27(11):48-49.

上一篇:各司其职 各尽所能 各得其所 下一篇:用系统变量手工编制数控铣削宏程序