欢迎来到天天文库
浏览记录
ID:34043383
大小:511.29 KB
页数:7页
时间:2019-03-03
《基于反射机制的插件系统软件设计[1]》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据3482010,31(2)计算机工程与设计ComputerEngineeringandDesign·软件与算法·基于反射机制的插件系统软件设计赵宏利L2,李秀冰1,李大林1(1.中国科学院空间科学与应用研究中心,北京100190;2.中国科学院研究生院,北京100049)摘要:为了提高软件的复用性和扩展性,缩短软件开发周期,提出了一种基于反射机制的插件系统软件设计思想.该软件系统通过一个独立的配置软件,不用编译源程序,就可以定制,修改和添加软件功能.软件系统的主要思想是基于反射机制实现插件,运用观察者模式来实
2、现插件之间数据关系的解耦,并且用XML描述和表达插件之间的关系以及插件的属性配置。基于该软件设计思想,设计了空间环境可视化软件系统,表明了其提高软件复用性和扩展性方面的有效性.关键词:插件;反射机制;XML配置;软件复用;软件设计中图法分类号:TP31l文献标识码:A文章编号:1000-7024(2010)02.0348.04Researchonplug—inapplicationframeworkbasedonreflectionZHAOHong-li他,LIXiu-bin91,LIDa-linl(1.Center
3、forSpaceScienceandAppliedResearch,ChineseAcademyofSciences,Beijing100190,China;2.GraduateUniversity,ChineseAcademyofSciences,Beijing100049,China)Abstract:Inordertoimprovethereusabilityandexpansibilityofsottwareandreducethesoftwareproductioncycle,asoftwaredesign
4、ideologyispresentedforplug-inapplicationframeworkbasedonreflectionmechanism.Theapplicationframeworkrealizesmodifyingandaddmgsoftwarefunctionsbyconfiguringthesoftwareindependentlywithoutcompilingthesourcecode.Theplug—insareimple·mentedbasedonthereflectionmechani
5、sm,whilethedatarelationsbetweentheplug-insaredeconpledbyutilizingobserverdesignpattern.Therelationsbetweenplug-insandtheconfigurationsofplug-insaredescribedandexpressedinXML.Theideologyisappliedintothespaceenvironmentvisualizationsystemandisverifiedintheaspecto
6、fitseffectivenessinimprovingsoftwarereusabilityandexpansibility.Keywords:plug-in;reflection;XMLconfiguration;softwarereusability;softwaredesign0引言本文提出的软件设计框架主要针对以下几个现实中存在的问题:①现在的软件开发越来越复杂,通常需要若干开发者协作进行。不同部门开发的软件部分,怎么样才能很容易地链接起来;②实际上,同一个行业的软件中,有很多可以完全重用的部分,而不用每次
7、重写,比如在文章结尾处提出的实例程序,在仿真可视化这个行业中,坐标系的转化部分,星历的计算部分等,在类似的应用场合中,都可以重复使用,需要更改的只是一些属性值。但是如何才能高效地利用这些可以重用的部分;③用户的需求在软件开发过程中不断地变化,而且在实际中,常常要求缩短开发的周期,系统在设计的当初就应该考虑如何适应多变的需求。对于问题①,本文提出的插件机制,每个单位都按照固定的插件接口来开发自己的功能部件,与以往的插件系统相比,本文系统利用反射来实现,反射的特性使得属性和方法的实现更加灵活多变,可以充分利用插件的功能。
8、考虑问题②,以往的解决方案中,一种是利用源代码重用,每次都得重新修改代码,然后把所有源代码集中起来进行调试。管理不便,代码的隐藏性不好,出现错误也很难排查。另一种是类库形式,这种重用不是纯粹的面向对象,大部分时候得重新编写一个封装类,封装调用。还有一种是以组件形式的重用,它是通过接口的查询,接口调用来实现重用和封装,但是它没有本文提出的基于反射
此文档下载收益归作者所有