[发明专利]一种在软件设计中避免状态轮询的方法在审
申请号: | 201910307597.7 | 申请日: | 2019-04-17 |
公开(公告)号: | CN110321180A | 公开(公告)日: | 2019-10-11 |
发明(设计)人: | 陆成刚;吴兵;李威;叶超凡;陈刚 | 申请(专利权)人: | 浙江工业大学 |
主分类号: | G06F9/448 | 分类号: | G06F9/448 |
代理公司: | 杭州斯可睿专利事务所有限公司 33241 | 代理人: | 王利强 |
地址: | 310014 浙江省*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 被控 函数指针 主控模块 软件设计 事件触发 业务事件 引用 轮询 调用 指向 调用函数 计算资源 接口函数 轮询机制 内容封装 指针指向 主动模块 初始化 响应 节约 | ||
一种在软件设计中避免状态轮询的方法,主控模块能够引用、调用被控模块的接口函数,被控模块不能引用、调用主动模块的函数;所述方法包括以下步骤:1)主控模块将被控模块中的业务事件需要响应的内容封装成一个函数;2)定义一个函数指针,使其初始化为指向上述函数;3)在被控模块里引用该函数指针;4)当被控模块的业务事件发生时,如果该函数指针指向非空,则调用函数指针指向的函数,否则就不执行该函数。本发明可以避免在主控模块里采用轮询机制实现事件触发,从而达到节约计算资源,事件触发更加实时的效果。
技术领域
本发明属于软件设计领域,涉及一种在软件设计中避免状态轮询的方法。
背景技术
在软件设计中最常规的一种方法论是按照层次从高到低、或从低到高将软件划分为若干层;或者是从模块角度将软件划分为若干模块组成的系统。在这样的方法论下,层次之间、模块之间需要作一些信息交互,才能组成一个有机的整体。一般来说这些交互信息分成两类:一、控制类信息;二、需要传递的数据。前者偏逻辑或流程的控制,后者偏参与运算(计算)的数据的传递。
此外,在软件设计中还鼓励这样一种理念:界面层和业务层分离,即界面代码和业务代码不能相互缠绕,可以在界面层里引用、调用业务层代码封装的接口函数,但不鼓励同时在业务层引用、调用界面层封装的接口。虽然这也是设计的常规思路,但凡事皆有例外,有时候界面层和业务层很难分离,有时候需要在业务层调用界面层以便作业务的某种可视功能。例如,在Windows系统WIN32开发框架下键盘与鼠标的回调接口是无法做界面和业务分离的;而AC97声卡开发接口WaveXXX系列里使用回调函机制实现音频数据给业务层处理,此时如果要可视音频的波形势必导致在业务层调用界面层的代码。这些都是例外的情形。
一般无论层次之间还是模块之间传递控制信息时,传递者和接收者之间存在着逻辑上的主动被动之分,主动层或模块称为主控模块。例如界面和业务之间是界面主动、业务被动,界面是主控模块。常见的GUI图形界面或触摸屏,都是由用户通过鼠标、键盘或触击来触发底层业务模块的调用运行的。但是当业务数据处理得到某个事件,并且由该事件触发某种需要在界面上的状态可视化,这时候界面作为主控模块是无法触发这个事件的,通常技术上采用状态轮询的方式。即由界面启一个线程去轮询业务模块是否发生该事件,一旦发生即刻触发该状态的界面可视处理。一般这个问题普遍存在于主控模块和被控模块之间,而触发事件又是生成在被控模块。此时,由于被控模块无法触发,只能由主控模块去轮询被控模块里的事件状态。而轮询本身会消耗一定的计算资源,更重要的无论轮询次数的间隔时长大小,总会导致事件状态变更和事件触发的延时。
发明内容
为了克服已有软件设计方法中轮询导致事件状态变更和事件触发的延时的不足,本发明提供了一种在软件设计中避免状态轮询的方法,可以避免在主控模块里采用轮询机制实现事件触发,从而达到节约计算资源,事件触发更加实时的效果。
本发明解决其技术问题所采用的技术方案是:
一种在软件设计中避免状态轮询的方法,主控模块能够引用、调用被控模块的接口函数,被控模块不能引用、调用主动模块的函数;所述方法包括以下步骤:
1)主控模块将被控模块中的业务事件需要响应的内容封装成一个函数;
2)定义一个函数指针,使其初始化为指向上述函数;
3)在被控模块里引用该函数指针;
4)当被控模块的业务事件发生时,如果该函数指针指向非空,则调用函数指针指向的函数,否则就不执行该函数。
进一步,所述主控模块中,将事件响应操作进行封装,提供接口供被控模块调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江工业大学,未经浙江工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910307597.7/2.html,转载请声明来源钻瓜专利网。