基于Facade模式的成绩报表设计

时间:2022-10-16 01:35:34

基于Facade模式的成绩报表设计

摘要:针对高校CAI系统中,成绩报表的输出需求,该文提出了一种基于Facade模式的成绩报表输出设计方案。该方法具有跨平台、易用性强等优点。

关键词:成绩报表;Facade;CAI

中文分类号:TP302.11文献标识码:A文章编号:1009-3044(2011)31-7679-02

The Score Report Based on Facade

LAN Ying

(College of Computer Science and Technology, Jilin Normal University, Siping 136000, China)

Abstract: Aimed the demand about outputing score report of CAI, this paper presented the solution based on Facade pattern design. The solution has many advantages, such as crossing-platform, easy using.

Key words: score report; Facade; CAI

随着软件技术在高校应用中的普及,越来越多的CAI(ComputerAided Instruction)计算机辅助教学软件被应用于大学教学实践中。CAI系统的使用提高了各项教学业务的执行效率。

考试成绩报表输出作为教学过程中的一个重要考核环节,是CAI系统中非常重要的一个功能模块。成绩报表的生成是个复杂的问题,特别是基于B/S结构报表打印一直是困扰开发人员的技术难题。通常有以下几种生成Web成绩报表的方案:1) 使用微软.Net环境开发提供的报表服务器端控件;2) 直接购买第三方Web报表生成组件如水晶报表组件等,来实现Web成绩报表的生成;3) 利用与VBA互操作模型来生成Web成绩报表。以上三种方案各自有优缺点,根据具体教学实际要求的不同,它们在不同的软件应用阶段都有可能应用于CAI成绩报表输出模块中。为了CAI系统切换Web成绩报表输出方式的灵活性以及系统升级维护的方便,本文提出了一种基于Facade模式的成绩报表设计方案。该方法具有跨平台、易用性强等优点。

1 Facade设计模式介绍

“设计模式”是对软件开发者经常遇到的设计问题的再现方案。一般而言,一个模式由四个基本要素构成。模式名称(pattern name);模式解决什么样的问题(problem):解释在什么情况下适合使用该模式;解决方案(solution);效果(consequences):描述了模式应用的效果及使用该模式需要权衡的问题。

Facade模式既外观模式,它能够为软件系统中的类产生一个简明一致的访问界面,实现隐藏子类复杂性,这样该子类就能更加方便被其它类采用透明方式进行调用。

Facade设计模式:

1) 模式名称:Facade外观设计模式。

2) 针对问题:需要用一种特殊的方式与系统进行交互。或者,只需要使用一个复杂系统的子集。

3) 解决方案:Facade向客户展现一个使用现有系统的新接口。定义一个新类来提供所需要的借口,然后让新的类使用现有的系统。

4) 效果:Facade简化对所需子系统的使用。

2 Facade设计模式生成报表实例

为了降低CAI系统模块间的相互依赖程度,使某一模块的修改或优化时不会影响到其它CAI模块,我们在CAI模块间采用统一接口的方式。Facade模式将成绩报表输出模块进行统一封装起来,提供一致的成绩报表输出接口,使得CAI系统其它模块与成绩报表输出模块分割开来,单独调用。CAI系统模块间提供一个Facade类或接口来达到CAI系统模块间的松耦合和弱依赖。该方案提高了Web成绩报表输出模块的可移植性和扩展性。使用Facade前成绩报表生成方式如图1所示。使用Facade后成绩报表生成方式如图2所示。

利用Facade设计模式封装Web成绩报表输出模块(采用.NET与VBA互操作模型实现打印)代码如下:

public abstract class ReportBaseLayer {//外观基类

objExcel.Workbooks.Add(File_Path);//打开电子表格成绩报表模板

objSheet.Cells[Flag,1]=reFactory.Tables[0].Rows

[i]“[FactoryName”]+C_SourceName+"分数";//填写成绩报表标题

for (int k=0;k

{ objExcel.CreateReport("Run",missing,);

objExcel.CreateReportScale("Run",missing,missing,);} //控制成绩报表比例尺

3 采用Facade设计模式生成报表的好处

1) 封装现有CAI系统Web成绩输出模块:在做CAI系统二次开发的时候,有时需要封装现有的旧CAI系统,使它达到复用的目的,以便节省软件开发成本。这样,我们的开发人员可以在保留旧系统的功能的情况下,进行新CAI系统创建。

2) 在采用N层架构设计的CAI系统中,使用Facade模式封装Web成绩输出模块,其它教学模块必须通过外观接口来访问Web成绩输出模块类的实例,这样清楚地划分层次之间的界限。可以增强CAI系统N层架构的逻辑性。

3) 编写可复用的CAI成绩报表输出中间件:作为一个经常被复用的CAI模块,把它设计成外观模式,这个模块具有使用简单,易于理解的特点。

4 结论

采用Facade设计模式的成绩报表设计,能够灵活方便的封装原有CAI系统成绩输出模块同时,还可以使其具有良好的复用性。在实际CAI系统应用过程中,得到了良好的预期效果。

参考文献:

[1] 陈臣,王斌.研磨设计模式[M].北京:清华大学出版社,2011.

[2] Shalloway A,James R.Trott.设计模式精解[M].熊节,译.北京:清华大学出版社,2007.

上一篇:自动气象站实时数据自动监控报警软件 下一篇:绘图在《C语言程序设计》教学中的应用