[发明专利]一种插件式的计算机程序设计架构无效
申请号: | 201110201241.9 | 申请日: | 2011-07-19 |
公开(公告)号: | CN102890627A | 公开(公告)日: | 2013-01-23 |
发明(设计)人: | 范建炜;范毅龙;张洪建 | 申请(专利权)人: | 昆明伯尔瑞科技开发有限公司;昆明有色冶金设计研究院股份公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 650106 云南省昆*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 插件 计算机 程序设计 架构 | ||
技术领域
本发明涉及一种插件式的计算机程序设计架构,尤其是可以将软件在不同生命周期所产生的新功能,不需要重新编译程序,只需通过预留的接口既可以使用新的功能。
背景技术
如今, 计算机程序繁复多样,但是基本上所有的软件生命周期中,都会随着时间推移,用户需求发生不断的变化,特别的,当用户需求开发者新增功能或者改变功能时,开发者发现原有的软件架构已经无法胜任新的任务需求时,开发者需要重新设计这个程序的架构。
但是实际问题是,即使用了一个开发周期,完成了需求提出的任务后,区不能保证用户需求的再次变更或新增,需求蔓延的可能性依然存在。因此,急需要一种插件式的架构,来应对此种情况。
现有的插件技术,首先是脚本式。使用某种语言把插件的程序逻辑写成脚本代码。而这种语言可以是 Python ,或是其他现存的已经经过用户长时间考验的脚本语言。甚至,你可以自行设计一种脚本语言来配合你程序的特殊需要。当然,用当今最流行的 XML 是再合适不过了。
这种形式的缺点在于,稍有点编程知识的用户就可以自行修改你的脚本,因为这种情况所造成的后果是不可预知的,对软件本身使用非常不安全。
其次是聚合式。顾名思义,就是把插件功能直接写成 EXE 。主程序除了完成自己的职责外,还负责调度这些“插件”。
但是,这中模式使插件与插件之间,主程序与插件之间的信息交流困难了许多。所以也是存在一定的缺陷。
发明内容
为了克服现有的软件插件设计框架的主程序与插件之间的信息交流复杂性,以及使用安全性问题,本发明提供了一种插件式的程序设计架构,本发明所述的架构中,插件功能以动态库函数的形式存在。主程序通过接口获得插件 DLL 中的函数签名,然后在合适的地方调用它们。
通过接口技术,我们的插件需要做的只是实现程序定义的接口。主程序不需要知道插件怎样实现预定的功能,它只需要通过接口访问插件,并提供主程序相关对象的接口。这样一来,主程序与各插件之间的信息交流就变得异常简单。并且,插件对于主程序来说是完全透明的。
该架构不仅能降低主程序与插件之间信息交流的复杂度,还能保障插件在使用过程中的稳定性,不会对主程序本身带来任何安全性的影响。从而大大提升了该框架的实用性和稳定性,为应对需求蔓延所带来的程序功能变化提供了基础。
本发明对于解决这些技术问题,所采用的技术方案是:
首先,进行接口的设计。我们的程序编辑器会向插件开放正在使用的业务对象。程序启动后,就枚举每一个插件并把它连接到主程序,同时传递主程序中业务对象到接口。插件可以通过这个接口来请求主程序的业务对象或访问主程序功能 。根据上面的需求,我们首先需要一个主程序接口:IApplicationObject。
其次,进行业务对象接口的设计。这个接口是连接主程序中的业务对象和插件的一个纽带,为插件提供业务对象的操作方法和属性。接口名称:IBizObject 。这个业务对象接口根据不同的业务场景可以灵活的为对象定义方法和属性,所以没有一个统一的标准和内容,只需符合一般类方法的规则既可。
再次,根据插件在其生命周期里的行为,设计插件的接口IPlugin。此接口定义了插件生命周期中各个方法,主程序会首先调用 Connect() 方法,并传递 IApplicationObject 给插件。插件在这个过程中做一些初始化工作。然后,插件的 OnLoad() 方法被调用。在这之后,当主程序接收到调用插件的信号时(键盘、鼠标响应)就会调用插件的 Run() 方法来启动这个插件。程序结束时,调用其 OnDestory() 方法。这样,插件的生命才宣告结束。然后,为了方便管理和识别插件,还要为插件定义一个属性类:PluginInfoAttribute。可以保存它的名称 、版本及作者等信息,通过这个类修饰插件,并让它实现 IPlugin 接口。
最后,将插件式的程序设计架构引用到一个计算机软件程序中,让主程序调通过这个架构,调用编写好的插件即可。
附图说明:
图1是插件式架构的示意图
图2是本发明的类结构图
图3是本发明的工作流程图
图4是本发明实施例图之一
图5是本发明实施例图之二
图6是本发明实施例图之三
图7是本发明实施例图之四
图8是本发明在使用过程中的文件夹结构图
具体实施方式:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明伯尔瑞科技开发有限公司;昆明有色冶金设计研究院股份公司,未经昆明伯尔瑞科技开发有限公司;昆明有色冶金设计研究院股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110201241.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:固定型信息码读取装置
- 下一篇:被测应用程序的未使用参数