施忠善/舟山市宏达交通工程有限责任公司
【摘要】设计模式在企业管理系统中的研究尚处在初级阶段,很多方面都需要进一步探索研究。设计模式为人们使用体系结构提供了方便,有助于软件的开发,提高了使用软件系统的稳定性和可维护性。
【关键词】设计模式;企业管理;应用
随着当前社会经济的快速发展,企业管理系统软件在企业日常运作中的作用越来越重要,加强了企业对于软件的依赖性,对软件的需求也越来越高,与企业管理系统有关的产品正向系列化发展。传统的软件开发方式已面临严峻的挑战,所以研发人员不得不寻求新的突破,设计模式也就应运而生了。
一、设计模式简介
设计模式是针对对象系统中重复出现的问题而提出来的一种解决方式。每个设计模式地命名、解释和评价都是由对象系统中重复出现的问题而决定的,方便其他人使用,达到资源共享的目的。一般情况下,一个模式描述通常要求包括以下几个信息:
(一)模式名称
每个模式都有自己唯一的名称,这是一个助记名,用简述模式的问题、解决方案和效果。人们可通过模式名称来进行交流,方便了交流和思考。
(二)问题
描述了使用模式的时间,也解释了设计问题的原因以及问题存在的后果,它描述了特定的设计问题和使用模式必须满足的先决条件。
(三)解决方案
描述了设计的组成成分以及各部分之间的相互关系和各自的职责与协作方式。因为模式可重复使用,所以它是对设计问题的抽象描述,而不是描述一个特定的并且具体的设计。
(四)效果
描述了模式使用后的效果以及使用模式时需要权衡思考的问题。由于重复使用是对设计模式的要求之一,所以模式效果包括了他对系统的灵活性、扩充性以及可移植性,列出这些效果的理解与评价对设计模式的发展有很大帮助。
二、设计模式的国内外现状
对设计模式的研究最早是在八十年代初出现的,它既是一个新兴出现的研究领域,又是一个热点研究领域。设计模式的起源是在国外,所以目前的主要研究工作也是在国外开展的,因此,国外的软件工程界正把设计模式运用到软件体系结构、设计、编码和开发的过程和组织中去。国内的设计模式研究和应用尚属起步阶段。国内外对设计模式的研究工作主要是:新设计模式的发现与研究、设计模式的应用及具体化、模式的组织和索引、形式化模式、设计模式的使用自动化和设计模式支持工具、设计模式和其他面向对象技术的关系等方面。
三、设计模式面向对象设计的基本原则
软件的重复使用率高既可以产生较高的生产效率,又可以提高软件质量,也可以改善系统的可维护性。通过设计模式的学习和应用,对面向对象的设计理念有了深入的理解,既可以改善系统的设计,又可以提高可维护性和可重复使用率。但是设计模式的背后有更具有普遍性的原则。
(一)开闭原则
面向对象设计最基本的原则是开闭原则。开闭原则就是对一个软件实体扩展开放,修改关闭的描述。
(二)里氏代换原则
子类模式应当可以与父类模式相替换,并且能够出现在父类出现的任何地方。里氏代换原则既是对开闭原则的补充,也是开闭原则的前提条件。
(三)依赖倒转原则
是抽象的不依赖于细节,但是细节应该依赖于抽象。它是对象设计的主要机制,其核心思想是针对接口编程,而不是针对实现编程的。
(四)接口隔离原则
是不强迫客户对他们不使用的方法产生依赖性。所以使用多个专门的接口的效果要比使用单一的接口好。从客户的角度来看,他们的依赖性最好是在最小的接口上产生的。
(五)单一职责原则
对于一个类来说,应该只有一个原因引起它的变化。也就是说一个类的功能具有单一性。遵守这一原则,对我们分析和编码思路的清晰有很大帮助,也让编码地测试和维护变得更加简单。能够把复杂的问题简单化,有利于代码的重复使用,也有利于系统的扩展。
(六)合成聚合复用原则
聚合是表示拥有的关系或者是整体与部分的关系,合成是表示一种更为强大的拥有关系。它们的使用,可以使已有的对象重新组合成新的对象,新对象又可以具有以前对象的功能。
(七)迪米特法则
也被称之为最少知识原则,就是一个对象应当对其他对象尽可能少的去了解。换句话说,就是在系统中各个对象之间减少直接调用的可能,假设调用关系不可避免,那么就尽量避免第三方参与,这样可以降低系统中对象之间的藕合程度,也就不会出现因修改其中的某一个类而对其它类产生不良的影响了。
四、设计模式在企业管理系统中的应用
HFPDMS的主要是由档案管理模块、客户管理模块、基础数据模块、订单模块、、销售模块、库存模块、客户帐目模块等模块组成。在中后期的开发中,客户在系统原型的使用功能上又提出了进一步的要求,这些需求主要是针对表示层和数据访问层的。为了满足这些客户细化的需求,开发人员利用.NET平台提供的反射、委托和数据绑定等机制,实现了相关设计模式方案。
(一)在表示层应用设计模式
客户登录系统后,在客户订单页面中新建、编辑、修改和提交自己的订单,用户必须输入产品代码,共由15位字符组成,可分为3个部分:图案代码、燃料类别和成品规格,这3个部分分别由8,4,3位字符组成,图案代码又可细分为花色序号和版别色调,分别由5个和3个字符组成,每个字符代表一种特定的意思。客户可以从产品代码中获取特定的产品信息。有时候由于产品代码较长,客户输入常常产生错误,输入完毕后,也要有能修改特定部分的操作。如果没有区分产品代码的各个部分区那么就把产品代码的四个部分,放置在不同的文本框控件中当中来显示,但大多数客户不认可这种方案,并且对用户的操作来说也很麻烦。
用户不想用特定的字符来区分各个组,有了这些要求,只能在原有的文本框控件的基础上,增加一些新的功能,而且还不能影响用户的连续输入。下图反映了在使用装饰模式后,用户在输入产品代码时的格式化效果。
(1)客户订单编辑页面
用户的桌面显示空间是有限的,企业管理系统应尽可能的显示用户最关心的数据。HFPDMS中,通过大量的数据网格控件来显示表格式的数据,列的数目较多,不能同时显示,如果浏览未显示的数据,就需要滚动网格控件,那么前面的数据就会被隐藏起来。往往会产生这样一种现象:客户需要不断的滚屏来校验或填写的数据是否正确。常常使用Excel的用户考虑得比较多,它可以冻结电子表格中左面的某几列,然后,向右滚屏时,左面的某几列的数据仍然能够看到,因此用户在功能页面提出了冻结列和统计行的要求,为了满足这些需求,可以采用继承的方式使DataGrid衍生出很多种子类,或者使用装饰模式,为DataGrid增加多种装饰器。但前者的使用不够灵活,而采用装饰模式又是一个非常庞大的工作量。
(2)生产订单查询页面
为DataGrid增加冻结列、统计行、排序等新的功能开发者在项目中利用策略模式。图4.2就显示了生产订单查询页面。在策略模式使用后,DataGrid具有了冻结部分列、统计和排序等新的功能。
在DataGrid的策略模式研发过程中,必须确保数据部分在垂直向上能够同步滚屏。在策略模式的使用过程中运用.NET的反射技术,使得各种策略类都可以访问受保护的成员,也不会对应用代码公开这些受保护的成员。
(二)在数据访问层应用设计模式
企业管理系统投入运行后,数据库中数据量将会大幅度增加,系统就会明显变慢。虽然数据会定期导出,尽量减少使用数据库中的数据,但是很多时候还是需要对历史库进行联合查询,以得到迁移到性能更高的数据库系统。为了增强系统的灵活性,需要保证数据访问层能够访问多种数据库系统。图4.3显示了数据访问层中访问具体数据库的核心类——通用的DataAccess类。从图中显示出,该类既不依赖具体的数据提供者,也不依赖特定的数据库系统,只依赖通用的接口。
(三)通用的DataAccess类
三、结语
通过在企业管理系统中引人设计模式,不仅使系统的设计一目了然,而且提高了系统的可维护性和伸展性。设计模式在企业管理系统中的研究尚处在初级阶段,很多方面都需要进一步探索研究。设计模式为人们使用体系结构提供了方便,有助于软件的开发,提高了使用软件系统的稳定性和可维护性。
【参考文献】
[1]李园,陈世平.MVC设计模式在ASP.NET平台中的应用[J].计算机工程与设计,2009(13)
[2]程国雄,胡世清.基于Silverlight的RIA系统架构与设计模式研究[J].计算机工程与设计,2010(08)
[3]张恰,马云鹏.国外教材设计模式研究述评[J].外国教育研究,2008(02)