一种三层结构软件框架扩展点实现方法.pdf
文本预览下载声明
一种三层结构软件框架扩展点实现方法∗
1 1 2
郝雯 ,艾玲梅 ,王映辉
1 陕西师范大学计算机科学学院,西安(710062 )
2 西安理工大学计算机科学与工程学院,西安(710048 )
E-mail :haowensxsf@163.com
摘 要:本文基于通用的软件三层结构框架,对框架的扩展点进行了分类,并根据各类的
特点,结合设计模式给出了各类扩展点的设计策略和实现方法。最后,以某大型机械制造
企业的工时管理系统开发为例,基于.NET 平台对各扩展点的具体实现过程进行了详细阐
述。本文的方法对增强软件框架的灵活性以及应对客户的需求变化提供了良好的支持。
关键词:扩展点;设计模式;软件框架;三层结构;.NET 平台;
中图分类号:TP311. 11 文献标识码:A
1 引 言
随着软件复用技术的深入,软件框架日益受到人们的重视。框架是一个可复用的、“半
成品”的应用程序,比软件体系结构更容易被开发者关注和理解,开发人员可通过对软件框
架的扩展和实例化实现应用系统,并使软件框架(下简称:框架) 的灵活性得以体现。而扩展
点是框架为用户提供足够灵活性的关键所在[1],也是进一步实现大粒度复用的核心。
框架中支持灵活扩展和定制的机制称为框架的扩展点,扩展点可以看作嵌入框架的占
位符(placeholder)[1,2] ,为对特定应用提供了定制的机制。仅扩展点的实现策略来看,目前
主要有两种方法:基于继承机制的实现方法和基于对象组合的实现方法。前者主要是通过
在基类中定义虚函数,在子类覆盖基类中大部分甚至全部虚函数的方法来实现扩展。后者
主要是将已有对象嵌入到新类中来实现扩展。过度使用继承机制实现扩展会使类结构庞大
和复杂,进而引起类爆炸等一系列问题,从而会降低代码的复用性,影响继承效果。单独
使用组合会失去继承的诸多优势,如不具备对象的多态性等。设计模式(Design pattern)是
一套被反复设计、分类、使用,并被多数人知晓的经验总结[3]2 ,可实现继承和组合方法的
有效结合,使两种方法以各自的优点弥补彼此的缺点。同时,设计模式采用“面向接口” 的
思想和封闭变化的概念。因此,基于设计模式实现框架扩展点可有效增强软件框架的灵活
性,改进与提高框架对特定应用的定制能力。
本文在对软件框架扩展点分类描述的基础上,针对目前被广泛使用的三层软件结构(界
面表示层、功能业务层和数据层)框架,在设计出各层变化点和分析了其构成机理的基础上,
详细阐述了基于设计模式的扩展点实现策略和扩展机制,给出了它们的具体实现方法,并
以某大型机械制造企业的工时管理系统的开发为例,详细描述了扩展点的具体使用方法和
应用过程。
本课题得到陕西省科技项目(2007F51,2008K4-11),西安市创新支持计划重点项目(XY080030),博士点基金
(20070700002)资助.
-1-
2 框架扩展点的实现策略
2.1 扩展点设计
扩展点是框架中灵活的点,它将被填上符合领域特性和客户化的业务应用实现,使框
架能够适应不同的业务领域。本文扩展点的实现策略是利用设计模式,在扩展点上定义接
口, 通过继承、组合和委托等方法重写接口构造具有领域特性的实现类,并将业务实现填
充到对应的扩展点中,进而快速构造具体领域特性的应用系统。如图1 所示。
三层结构框架是目前通用的软件框架,其将软件系统从逻辑上划分为用户界面表示层、
功能业务层和数据层三个层面。根据软件的通用三层结构,将扩展点扩展类型归结为3 类:
界面扩展、功能扩展和数据扩展。界面扩展是要支持界面的个性化显示,功能扩展是根据
业务领域知识,灵活应对用户多变的业务功能需求。数据扩展是屏蔽不同的应用对象对框
架造成的复杂性。下面针对不同类型扩展点的特点,结合设计模式,给出不同扩展点的实
现策略。
显示全部