APP下载

MVC设计模式与Struts架构的研究

2013-04-29钱洁萍

中国科教创新导刊 2013年7期

钱洁萍

摘 要:MVC核心思想是将整个程序代码分成相对独立而又能协同工作的三个组成部分。采用三层软件设计架构后,软件系统在可扩展性、可复用性和安全性方面得到极大提高。Struts所采用的是MVC模式,通过这种模式能够很好的帮助JAVA开发者们利用J2EE开发Web的应用。按照struts构架的web应用程序是一个传统MVC设计模式的一种变化类型。

关键词:MVC模式 Struts架构 业务逻辑

中图分类号:TP3 文献标识码:A 文章编号:1673-9795(2013)03(a)-0204-01

随着Internet技术的广泛使用,Web也越来越受到广泛的应用,其规模也发展的越来越大,这使得开发人员所意识到了:如今使用Web的领域越来越多,而动态Web在应用时维护成本也逐渐变大,只是单纯的使用ASP或者JSP来充当页面中的大多角色,这对于后期的维护是相当不利的。开发人员在开始应用Web模式时使用的是一种叫MVC的模式,采用一种优秀的分层思想,力图解决Web应用维护困难的问题。引入MVC模式,提供了更好的可扩展性及可维护性,更适用于大规模应用的开发,但也增加了前期开发的难度所在。

Struts是MVC的一种实现,它继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。Struts架构有自己的控制器,同时整合了其他的一些技术去实现模型层和视图层。Struts为每个专业的Web 应用程序做背后的支撑,为应用创建一个扩展的开发环境。

1 MVC模式设计思想

MVC思想将一个应用分为三个部分:Model(模型)、View(视图)和Controller(控制器),这三部分以最少的耦合协同工作,从而提高应用的可扩展性及可维护性。在MVC模式中,控制器根据事件的类型改变模型或视图,反之亦然。多个视图注册到同一个模型,每一个模型对应一系列的视图列表,当模型发生变化时,模型向所有注册过的视图发出通知,视图从相应的模型中获取信息,并更新视图显示。

2 MVC模式结构

MVC强制性地使应用程序的输入、处理和输出分开,应用程序被分成三个核心部件,它们各司其职。视图、模型、控制器。如图1所示,描述了三者之间的关系。

3 MVC模式实现

实现基于MVC的实际应用需要注意以下几方面工作:第一,具体分析应用问题,并对系统进行全面的分离。将分离出来三大部分,分别是内核功能、对功能的控制输入以及系统的输出行为。第二,构造和实现每个控制器。控制器的初始化建立起与模型和视图相联系,最终启动事件处理机制。而事件的处理机制是依赖于界面的工作平台来实现的。第三,通过使用能够安装及卸载的控制器,容易形成高度的灵活性的应用。控制器与视图的分离,做到了视图与不同的控制器相结合的灵活性,从而实现了不同的操作模式。

4 MVC模式优缺点

MVC模式优点:(1)松耦合。(2)重用性高。(3)产品的结构清晰。

MVC模式不足:(1)增加了系统结构和实现的复杂性。(2)视图对模型数据的低效率访问。(3)MVC不适合小型应用程序。

5 Struts体系结构与工作原理

Struts为Web应用提供了一个通用框架,并提供了许多供扩展和定制的地方,应用程序可方便地扩展框架以更好地适应用户的实际需求。框架中分为:模型,视窗和控制器三大部分。模型指的是:系统的内部状态和可以将其改变的状态的操作(又名:事物逻辑)。视窗指的是:Struts中包含扩展自定义的标签库,从而可以简化并创建完全国际化用户界面的全过程。控制器指的是:在Struts中基本的控制器组件是ActionServlet中的实例servlet,在实际使用的servlet的配置文件中由一组映射进行定义。Struts体系结构与工作原理如图2所示。

6 Struts架构特点

灵活应用Struts的标签库就能大大提高开发效率,在JSP中用户也能自定义标签。页面导航使系统脉络更加清晰,通过配置文件掌握整个系统各部分之间的联系,对于后期维护极为有利,维护扩展方便的优势体现明显。表现与逻辑分离,便于团队开发。

7 结语

采用MVC设计模式可以在满足对界面要求的同时,使软件的计算模型独立于界面的构成。本文介绍了MVC的三个组成构件(模型、视图和控制器),以及实现基于MVC的应用需要完成的工作并对MVC的优点及不足之处进行了分析。Struts采用MVC模式,面向对象设计,能够很好地帮助java开发者利用J2EE开发Web应用。Structs框架的核心是一个弹性的控制层,同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。Struts将MVC模式“分离显示逻辑和业务逻辑”的能力发挥得淋漓尽致。

参考文献

[1] 杨晓军.MVCWeb开发学习实录[M].清华大学出版社,2011,7.

[2] 李刚.Struts 2.1权威指南—— 基于WebWork核心的MVC开发[M].电子工业出版社,2009,5.