[发明专利]模块间通知回调方法及模块交互结构在审
申请号: | 201410266347.0 | 申请日: | 2014-06-16 |
公开(公告)号: | CN103995752A | 公开(公告)日: | 2014-08-20 |
发明(设计)人: | 付庆 | 申请(专利权)人: | 上海斐讯数据通信技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 上海信好专利代理事务所(普通合伙) 31249 | 代理人: | 包姝晴 |
地址: | 201620 上海市松*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 模块 通知 方法 交互 结构 | ||
技术领域
本发明涉及一种信息交互技术,具体涉及一种模块间通知回调方法及模块交互结构。
背景技术
在复杂系统的软件设计中,多个模块间常常需要协作交互,传统的方法是在两个需要交互的模块间“建立消息队列”或是“注册回调函数”。
如图1所示,比如若要在模块A发生事件X时调用模块B的函数Y。
“建立消息队列”的方法是:在模块A和模块B间建立消息队列,当模块A发生事件X时向模块B发送消息,模块B解析此消息并调用相应的函数。
“注册回调函数”的方法是:模块B首先调用模块A提供的注册函数将函数Y注册为回调函数,然后在模块A发生事件X时会自动调用模块B注册的回调函数Y。
如图2所示,为传统方法模块间交互的拓扑图,假设有五个模块,两两间需要交互。可见五个模块中每一个模块都与其余四个模块建立连接。
现有技术的缺点在于:
1)、每两个交互的模块间都需要建立一个消息队列或是注册一个回调函数,实现比较复杂。
2)、增加了模块间的耦合,一个模块的修改会导致多个相关的模块也必须修改,难以维护。
3)、两个交互的模块间,若两边接口定义不一致,可能会导致运行时的错误,影响系统的稳定性。
发明内容
本发明提供一种模块间通知回调方法及模块交互结构,降低模块间耦合,系统易于维护,提高系统稳定性。
为实现上述目的,本发明提供一种模块间通知回调方法,其特点是,该方法包含:
建立一公共消息模块,并分别与各功能模块建立连接;
各功能模块在公共消息模块中注册事件或注册响应事件的回调函数;
当公共消息模块收到其他功能模块发来的消息后,调用预先注册的事件上所有的回调函数,以完成功能模块间的交互。
上述公共消息模块包含有头文件和源文件;
头文件中定义事件ID和回调函数指针类型;
源文件中创建消息队列,定义一个全局的函数指针的二维数组。
上述二维数组的一维下标代表事件ID,二维下标代表注册在对应事件ID上的回调函数;
结合二维数组的一维下标和二维下标寻址,得到注册在该一维下标的事件ID的所对应事件上的所有回调函数。
上述功能模块在公共消息模块中注册事件的方法包含:
需注册事件的功能模块在公共消息模块的头文件添加一个事件ID的宏定义,并添加要传给回调函数的结构体参数的定义。
上述功能模块注册响应对应事件的回调函数的方法包含:
该功能模块将回调函数的指针地址输入公共消息模块的二维数组中对应事件ID的位置。
上述功能模块间的交互方法包含:
一功能模块发起一事件,向公共消息模块的消息队列发送消息,该消息中包含事件ID;
公共消息模块接收到该消息后进行解析,得到该事件ID的结构体参数;
然后调用所有其他功能模块于公共消息模块注册的响应该事件的回调函数。
重复上述功能模块间的交互方法,即完成若干功能模块间的交互;所有参与交互的功能模块包含公共消息模块的头文件。
一种适用于上述模块间通知回调方法的模块交互结构,该结构中包含有若干功能模块;其特点是,该结构还包含有公共消息模块,若干功能模块分别连接至所述公共消息模块;各功能模块相互间无连接,通过公共消息模块完成功能模块间交互。
本发明模块间通知回调方法及模块交互结构和现有技术的模块间交互方式相比,其优点在于,本发明将模块交互的工作统一由一个独立的公共消息模块完成,降低了多个模块间的耦合,使软件系统易于维护;
本发明模块间的交互,只需要在公共消息模块中做简单的注册,实现更简易;
本发明所有需要交互的模块都直接引用公共消息模块头文件,避免了模块间定义不一致的情况,提升了系统的稳定性。
附图说明
图1为现有技术模块间交互的示意图;
图2为现有技术模块间交互的拓扑图;
图3为本发明模块交互结构的拓扑图;
图4为本发明模块间通知回调方法的方法流程图;
图5为本发明模块间通知回调方法中函数指针二维数组的示意图。
具体实施方式
以下结合附图,进一步说明本发明的具体实施例。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海斐讯数据通信技术有限公司,未经上海斐讯数据通信技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410266347.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:整体夹套式固液分离罐
- 下一篇:一种健身扭腰转盘