[發(fā)明專利]一種解決軟件分支語句過多的方法在審
| 申請?zhí)枺?/td> | 201610000461.8 | 申請日: | 2016-01-04 |
| 公開(公告)號: | CN105677341A | 公開(公告)日: | 2016-06-15 |
| 發(fā)明(設(shè)計(jì))人: | 趙銀春 | 申請(專利權(quán))人: | 成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司 |
| 主分類號: | G06F9/44 | 分類號: | G06F9/44 |
| 代理公司: | 成都九鼎天元知識(shí)產(chǎn)權(quán)代理有限公司 51214 | 代理人: | 項(xiàng)霞 |
| 地址: | 610041 四*** | 國省代碼: | 四川;51 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 解決 軟件 分支 語句 過多 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明屬于軟件設(shè)計(jì)技術(shù)領(lǐng)域,尤其涉及一種解決軟件分支語句過多的方法。
背景技術(shù)
架構(gòu)設(shè)計(jì)是軟件設(shè)計(jì)中重要的一個(gè)步驟,優(yōu)秀的架構(gòu)設(shè)計(jì)可以保證整個(gè)軟件系統(tǒng)的穩(wěn)定性、可擴(kuò)展性、可維護(hù)性等。
在軟件系統(tǒng)特別是通信系統(tǒng)的設(shè)計(jì)中,經(jīng)常會(huì)出現(xiàn)以下的處理邏輯:1通信數(shù)據(jù)幀接收->2對數(shù)據(jù)進(jìn)行解析->3根據(jù)不同的命令調(diào)用不同的處理函數(shù)->4發(fā)送處理結(jié)果。
在這種類型的系統(tǒng)中,最大的代碼工作在第三步,即根據(jù)不同的命令調(diào)用不同的處理函數(shù),通常的設(shè)計(jì)會(huì)采用switch分支函數(shù)或函數(shù)指針數(shù)組進(jìn)行處理,如果采用switch分支語句進(jìn)行處理,會(huì)造成主處理函數(shù)中包含較多的分支,這樣會(huì)在功能擴(kuò)展時(shí)需要對主處理函數(shù)進(jìn)行修改增加分支內(nèi)容,維護(hù)困難而且不利于閱讀,對軟件的后期維護(hù)也造成不便。如果單純的采用函數(shù)指針數(shù)據(jù)進(jìn)行處理,可以解決主函數(shù)分支過多的問題,但是在功能擴(kuò)展時(shí),同樣需要對主處理功能模塊進(jìn)行修改,維護(hù)困難。
在這種情況下,需要一種簡單有效的方法使軟件系統(tǒng)更加可靠、更加易于維護(hù)和易于擴(kuò)展。
發(fā)明內(nèi)容
為實(shí)現(xiàn)上述目的,本發(fā)明提供了一種解決軟件分支語句過多的方法,包括:
動(dòng)態(tài)庫建立步驟;
函數(shù)指針建立步驟;
函數(shù)指針指向動(dòng)態(tài)庫步驟;
其中,動(dòng)態(tài)庫建立具體為如下步驟:
步驟一:建立動(dòng)態(tài)庫,將每個(gè)分支作為功能函數(shù)FUNCX()編譯到動(dòng)態(tài)庫中,其中X=0,1,…,N;N的值為分支數(shù);
步驟二:建立具有N個(gè)元素的功能函數(shù)數(shù)組,將每個(gè)分支對應(yīng)的功能函數(shù)和功能函數(shù)數(shù)組中的每個(gè)數(shù)據(jù)元素一一對應(yīng);
步驟三:建立統(tǒng)一處理函數(shù),并將其編譯到動(dòng)態(tài)庫中;
步驟四:在統(tǒng)一處理函數(shù)中根據(jù)命令直接執(zhí)行數(shù)組對應(yīng)元素對應(yīng)的功能函數(shù),完成相應(yīng)的分支功能;
其中,函數(shù)指針指向動(dòng)態(tài)庫步驟具體為:
步驟一:初始化函數(shù)指針,打開動(dòng)態(tài)庫;
步驟二:取得統(tǒng)一處理函數(shù)的實(shí)際地址;
步驟三:函數(shù)指針指向動(dòng)態(tài)庫統(tǒng)一處理函數(shù)。
進(jìn)一步的,動(dòng)態(tài)庫建立步驟和函數(shù)指針建立步驟同時(shí)進(jìn)行。
進(jìn)一步的,先進(jìn)行函數(shù)指針建立步驟,再進(jìn)行動(dòng)態(tài)庫建立步驟。
進(jìn)一步的,通過dlopen打開動(dòng)態(tài)庫。
進(jìn)一步的,通過dlsym取得處理函數(shù)的實(shí)際地址。
本發(fā)明具有如下優(yōu)點(diǎn):
1.簡化程序結(jié)構(gòu),將龐大的分支簡化為單個(gè)的功能函數(shù),避免了一個(gè)函數(shù)行數(shù)過多的問題。
2.具體處理功能編譯為動(dòng)態(tài)庫,增強(qiáng)了程序的可擴(kuò)展性,如需擴(kuò)展功能,只需要更新動(dòng)態(tài)庫即可。
3.結(jié)構(gòu)簡單,可以根據(jù)每個(gè)功能進(jìn)行分工合作,在軟件設(shè)計(jì)和實(shí)現(xiàn)中安排不同的人員分別對動(dòng)態(tài)庫和主函數(shù)兩個(gè)部分進(jìn)行開發(fā)設(shè)計(jì),所有的數(shù)據(jù)處理都在動(dòng)態(tài)庫中完成,在統(tǒng)一處理函數(shù)中只需要實(shí)現(xiàn)函數(shù)指針、指針的初始化以及主處理流程即可。提高軟件設(shè)計(jì)效率。
4.提高了軟件的可讀性、可維護(hù)性,增強(qiáng)了軟件的可擴(kuò)展性。
附圖說明
圖1是本發(fā)明工作流程圖。
具體實(shí)施方式
本發(fā)明的設(shè)計(jì)構(gòu)思為:動(dòng)態(tài)庫和函數(shù)指針數(shù)據(jù)相結(jié)合,以解決上述軟件工程中分支語句較多時(shí)問題,以簡化軟件結(jié)構(gòu),提高軟件設(shè)計(jì)效率,提高軟件的可讀性、可維護(hù)性和可擴(kuò)展性。
本發(fā)明可分為三個(gè)大的步驟:
a.動(dòng)態(tài)庫建立步驟。
b.函數(shù)指針建立步驟。
c.函數(shù)指針指向動(dòng)態(tài)庫步驟。
下面結(jié)合圖1對各個(gè)步驟進(jìn)行詳細(xì)說明。其中,dll為動(dòng)態(tài)庫,pcmd為函數(shù)指針,Mngcmd為統(tǒng)一處理函數(shù),SCMD為功能函數(shù)數(shù)組。
動(dòng)態(tài)庫建立步驟具體包括如下步驟:
步驟一:建立動(dòng)態(tài)庫dll,將每個(gè)分支作為功能函數(shù)FUNCX()編譯到動(dòng)態(tài)庫中,其中X=0,1,…,N;N的值為分支數(shù);
步驟二:建立具有N個(gè)元素的功能函數(shù)數(shù)組SCMD,將每個(gè)分支對應(yīng)的功能函數(shù)和功能函數(shù)數(shù)組中的每個(gè)數(shù)據(jù)元素SCMD[n](n=0,1,…,N)一一對應(yīng);
步驟三:建立統(tǒng)一處理函數(shù)mngcmd,并將其編譯到動(dòng)態(tài)庫dll中;
步驟四:在mngcmd中根據(jù)命令直接執(zhí)行數(shù)組對應(yīng)元素對應(yīng)的功能函數(shù),完成相應(yīng)的分支功能。如命令n直接執(zhí)行SCMD[n],進(jìn)而利用FUNCn()可完成相應(yīng)的分支功能。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司,未經(jīng)成都衛(wèi)士通信息產(chǎn)業(yè)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610000461.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 一種基于應(yīng)用軟件散布的軟件授權(quán)與保護(hù)方法及系統(tǒng)
- 一種用于航空機(jī)載設(shè)備的軟件在線加載系統(tǒng)及方法
- 軟件構(gòu)建方法、軟件構(gòu)建裝置和軟件構(gòu)建系統(tǒng)
- 惡意軟件檢測方法及裝置
- 一種基于軟件基因的軟件同源性分析方法和裝置
- 軟件引入系統(tǒng)、軟件引入方法及存儲(chǔ)介質(zhì)
- 軟件驗(yàn)證裝置、軟件驗(yàn)證方法以及軟件驗(yàn)證程序
- 使用靜態(tài)和動(dòng)態(tài)惡意軟件分析來擴(kuò)展惡意軟件的動(dòng)態(tài)檢測
- 一種工業(yè)控制軟件構(gòu)建方法和軟件構(gòu)建系統(tǒng)
- 可替換游戲軟件與測驗(yàn)軟件的裝置與方法
- 基于聊天大數(shù)據(jù)知識(shí)庫的機(jī)器人對話控制方法和系統(tǒng)
- 基于大數(shù)據(jù)搜索的幽默型機(jī)器人對話控制方法和系統(tǒng)
- 基于對話知識(shí)庫的機(jī)器人對話控制方法和系統(tǒng)
- 一種自然語言語句評價(jià)方法及裝置
- 句子級雙語對齊方法及系統(tǒng)
- 一種獲取相似語句的方法、裝置、存儲(chǔ)介質(zhì)及電子設(shè)備
- 一種翻譯模型結(jié)果重排序的方法及裝置
- 用于輸出信息的方法、裝置、設(shè)備以及存儲(chǔ)介質(zhì)
- 搜索推薦方法和裝置、服務(wù)器、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)
- 文本識(shí)別方法、裝置、電子設(shè)備和可讀存儲(chǔ)介質(zhì)





