[发明专利]一种解决软件分支语句过多的方法在审
申请号: | 201610000461.8 | 申请日: | 2016-01-04 |
公开(公告)号: | CN105677341A | 公开(公告)日: | 2016-06-15 |
发明(设计)人: | 赵银春 | 申请(专利权)人: | 成都卫士通信息产业股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 项霞 |
地址: | 610041 四*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 解决 软件 分支 语句 过多 方法 | ||
技术领域
本发明属于软件设计技术领域,尤其涉及一种解决软件分支语句过多的方法。
背景技术
架构设计是软件设计中重要的一个步骤,优秀的架构设计可以保证整个软件系统的稳定性、可扩展性、可维护性等。
在软件系统特别是通信系统的设计中,经常会出现以下的处理逻辑:1通信数据帧接收->2对数据进行解析->3根据不同的命令调用不同的处理函数->4发送处理结果。
在这种类型的系统中,最大的代码工作在第三步,即根据不同的命令调用不同的处理函数,通常的设计会采用switch分支函数或函数指针数组进行处理,如果采用switch分支语句进行处理,会造成主处理函数中包含较多的分支,这样会在功能扩展时需要对主处理函数进行修改增加分支内容,维护困难而且不利于阅读,对软件的后期维护也造成不便。如果单纯的采用函数指针数据进行处理,可以解决主函数分支过多的问题,但是在功能扩展时,同样需要对主处理功能模块进行修改,维护困难。
在这种情况下,需要一种简单有效的方法使软件系统更加可靠、更加易于维护和易于扩展。
发明内容
为实现上述目的,本发明提供了一种解决软件分支语句过多的方法,包括:
动态库建立步骤;
函数指针建立步骤;
函数指针指向动态库步骤;
其中,动态库建立具体为如下步骤:
步骤一:建立动态库,将每个分支作为功能函数FUNCX()编译到动态库中,其中X=0,1,…,N;N的值为分支数;
步骤二:建立具有N个元素的功能函数数组,将每个分支对应的功能函数和功能函数数组中的每个数据元素一一对应;
步骤三:建立统一处理函数,并将其编译到动态库中;
步骤四:在统一处理函数中根据命令直接执行数组对应元素对应的功能函数,完成相应的分支功能;
其中,函数指针指向动态库步骤具体为:
步骤一:初始化函数指针,打开动态库;
步骤二:取得统一处理函数的实际地址;
步骤三:函数指针指向动态库统一处理函数。
进一步的,动态库建立步骤和函数指针建立步骤同时进行。
进一步的,先进行函数指针建立步骤,再进行动态库建立步骤。
进一步的,通过dlopen打开动态库。
进一步的,通过dlsym取得处理函数的实际地址。
本发明具有如下优点:
1.简化程序结构,将庞大的分支简化为单个的功能函数,避免了一个函数行数过多的问题。
2.具体处理功能编译为动态库,增强了程序的可扩展性,如需扩展功能,只需要更新动态库即可。
3.结构简单,可以根据每个功能进行分工合作,在软件设计和实现中安排不同的人员分别对动态库和主函数两个部分进行开发设计,所有的数据处理都在动态库中完成,在统一处理函数中只需要实现函数指针、指针的初始化以及主处理流程即可。提高软件设计效率。
4.提高了软件的可读性、可维护性,增强了软件的可扩展性。
附图说明
图1是本发明工作流程图。
具体实施方式
本发明的设计构思为:动态库和函数指针数据相结合,以解决上述软件工程中分支语句较多时问题,以简化软件结构,提高软件设计效率,提高软件的可读性、可维护性和可扩展性。
本发明可分为三个大的步骤:
a.动态库建立步骤。
b.函数指针建立步骤。
c.函数指针指向动态库步骤。
下面结合图1对各个步骤进行详细说明。其中,dll为动态库,pcmd为函数指针,Mngcmd为统一处理函数,SCMD为功能函数数组。
动态库建立步骤具体包括如下步骤:
步骤一:建立动态库dll,将每个分支作为功能函数FUNCX()编译到动态库中,其中X=0,1,…,N;N的值为分支数;
步骤二:建立具有N个元素的功能函数数组SCMD,将每个分支对应的功能函数和功能函数数组中的每个数据元素SCMD[n](n=0,1,…,N)一一对应;
步骤三:建立统一处理函数mngcmd,并将其编译到动态库dll中;
步骤四:在mngcmd中根据命令直接执行数组对应元素对应的功能函数,完成相应的分支功能。如命令n直接执行SCMD[n],进而利用FUNCn()可完成相应的分支功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都卫士通信息产业股份有限公司,未经成都卫士通信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610000461.8/2.html,转载请声明来源钻瓜专利网。