摘 要 讨论了插件应用系统的基础理论及应用优势,据此设计了基本的插件应用系统框架模块并通过MFC基础平台予以具体实现。
关键字 插件;动态链接库;MFC1 插件体系结构
软件开发手段的演化,就在于以最小的代价得到更健壮且易于扩展和维护的“好”的应用系统,开发工具的持续改进和开发思想的进化使得我们有可能实现上述目标。 从面向过程的开发至面向对象的编程,直至目前面向组件的开发,正是上述思维的展现。基于插件的应用系统从体系结构设计出发,着力构建低耦合的,灵活可扩展的且支持无编译热插拔的应用系统,通过分析应用需求,提炼功能相似的模块并设计相应的模块间接口,我们就可以将该部分功能分离出来,综合来看,基于插件的应用系统有以下优势: (1)实现真正意义上的软件组件的“即插即用”。 (2)在二进制级上集成软件, 减少大量的软件重新编译与发布所带来的麻烦。 (3)能够很好地实现软件模块的分工开发, 并且能够大量吸取他人的优点。 (4)可以较好地实现代码隐藏, 保护知识产权。基于插件的体系结构如图1所示。图1 插件应用系统体系结构 从图1可知,一个完成的基于插件的应用系统共分两部分:插件主控程序(含插件调度核心模块)以及插件池(存放所有插件)。主控程序通过核心模块提供插件管理功能,主要包括: (1)注册及卸载插件:插件在使用之前必须注册或存放于特定的路径中,主控程序根据相关配置参数对插件完成初始化工作。 (2)启用及禁用插件:主控程序可以根据用户指令,对某些已装载的插件予以启用或禁用。 (3)显示插件信息:包括插件描述,开发者信息,版本和版权声明等。 (4)配置插件参数:插件本身的运行需要对某些参数进行定制。根据模块规划,插件实现特定的功能并将接口暴露出来,根据需要,可能还需要调用主控程序提供的方法以操作资源或数据。2 设计思路及MFC实现
据上述讨论,我们设计一个基本的插件应用系统框架,其中主控程序是基于MFC对话框的应用程序,插件使用动态库实现,插件管理部分使用专门的CPluginManager类实现,其实现的函数如图2所示。 图2 插件管理类视图 就主要函数说明如表1所示。表1 插件管理类提供的函数函数名称 | 函数说明 |
Init | 初始化,搜索所有有效插件 |
Shutdown | 释放资源 |
GetAll | 得到所有插件名,用CString对象返回,名之间用:隔开 |
Count | 返回可用插件的个数 |
Run | 调用插件提供的函数接口 |
Load | 载入所有插件 |
UnLoad | 卸载所有插件 |
ExtractFilePath | 提取插件存放路径 |
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
3 结束语
开放的组件化体系结构模块组成清晰,同时也方便了系统扩展和后续维护,本文从插件应用系统的体系结构入手,设计了主控模块与插件池的功能要求,给出了插件管理类实现的功能,并基于MFC给出了相应的具体实现,需要说明的是: (1)插件应用系统涉及到主控程序和插件之间的双向交互,插件也可以利用主控程序提供的接口访问公共资源和数据,本文对该部分功能未作实现。 (2)真正的应用系统由于插件众多,不可避免的涉及到插件之间的协同和冲突检测,需要在结构设计上解决。 (3)插件的实现方式较多,可以根据具体的应用需求和系统规模选用比较合适的一种。总的来看,基于组件的插件应用系统,由于存在诸多优势,必将带来更多的应用前景和用户体验。参考文献
[1] 彭永康,章义来,插件及其接口的研究与应用,计算机应用,2003,6:122~123[2] 于珊珊,软件插件技术及其应用研究,电脑学习,2007,8:55~56
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
公民权利国家权力对立统一关系论纲04-26
人格魅力、权力制约与法治国家04-26
国家审计对权力的制约与监督探讨04-26
刑事政策的理论预设:国家、权力与公共政策04-26
论国家权力分配原理04-26
电力营销中电费核算存在的问题及对策04-26
论国家的权力与政府的规模04-26
浅谈民族文化、国家权力与全球化04-26
国家调节权:第四种权力形态04-26
关于重申人民主权:国家权力的结构改革04-26