[發明專利]一種解除程序模塊循環依賴的方法及系統在審
| 申請號: | 201810930592.5 | 申請日: | 2018-08-15 |
| 公開(公告)號: | CN109144571A | 公開(公告)日: | 2019-01-04 |
| 發明(設計)人: | 王唯融 | 申請(專利權)人: | 鄭州云海信息技術有限公司 |
| 主分類號: | G06F9/30 | 分類號: | G06F9/30 |
| 代理公司: | 濟南誠智商標專利事務所有限公司 37105 | 代理人: | 黃曉燕 |
| 地址: | 450018 河南省鄭州市*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 程序模塊 指針保存 調用 業務運行 從模塊 加載 編程 指針 | ||
本發明實施例公開了一種解除程序模塊循環依賴的方法及系統,所述程序模塊包括依賴模塊和被依賴模塊,所述依賴模塊包括函數B,所述被依賴模塊包括函數D,函數D依賴函數B,在加載依賴模塊時,將函數B的指針保存至被依賴模塊內。本發明將依賴模塊中被依賴函數的指針保存在被依賴模塊內,在調用被依賴模塊的依賴函數是,直接從模塊內獲取被依賴函數的指針,解除依賴模塊和被依賴模塊間的循環調用問題,使模塊間編程和業務運行能夠順利進行。
技術領域
本發明涉及計算機軟件技術領域,具體地說是一種解除程序模塊循環依賴的方法及系統。
背景技術
在模塊化編程的實際場景中,時常發生因模塊間邏輯耦合較高而發生循環依賴的需要。模塊間循環依賴,會引起編譯時模塊順序無法確定,最終導致程序無法編譯、無法使用。
模塊間循環依賴的出現,往往被認為是模塊劃分粒度不合理,或者模塊間管理不正確。但事實上,伴隨著程序業務的增加完善,模塊間交叉引用的需要每每出現。對于這類無法避免的交叉引用,常見的解決方案是合并模塊,或者將所涉模塊進行進一步拆分,但這些操作往往伴隨著巨大的工作量和隱含的風險。
發明內容
本發明實施例中提供了一種解除程序模塊循環依賴的方法及系統,以解決現有技術中解除模塊間循環依賴工作量大、風險高的問題。
為了解決上述技術問題,本發明實施例公開了如下技術方案:
本發明第一方面提供了一種解除程序模塊循環依賴的方法,所述程序模塊包括依賴模塊和被依賴模塊,所述依賴模塊包括函數B,所述被依賴模塊包括函數D,函數D依賴函數B,在加載依賴模塊時,將函數B的指針保存至被依賴模塊內。
結合第一方面,在第一方面第一種可能的實現方式中,所述將函數B的指針保存至被依賴模塊內的具體過程為:
注冊依賴模塊中被依賴函數B的函數指針B’;
加載依賴模塊,將函數指針B’保存在被依賴模塊的函數指針管理機制中。
結合第一方面,在第一方面第二種可能的實現方式中,所述函數指針B’以變量的形式保存在所述函數指針管理機制中。
結合第一方面,在第一方面第一種或第二種可能的實現方式中,所述方法還包括
調用函數D時,從被依賴模塊的函數指針管理機制內獲取函數指針B’,執行函數指針B’。
結合第一方面,在第一方面第一種或第二種可能的實現方式中,所述方法還包括
調用函數B時,從被依賴模塊的函數指針管理機制內獲取函數指針B’,執行函數指針B’。
本發明第二方面提供了一種解除程序模塊循環依賴的系統,所述程序模塊包括依賴模塊和被依賴模塊,所述依賴模塊包括函數B,所述被依賴模塊包括函數D,函數D依賴函數B,所述系統包括函數指針處理單元,所述函數指針處理單元在依賴模塊加載時,將函數B的指針保存至被依賴模塊內。
結合第二方面,在第二方面第一種可能的實現方式中,所述函數指針處理單元包括
指針注冊單元,用于注冊依賴模塊中被依賴函數B的函數指針B’;
指針轉存單元,在加載依賴模塊,將函數指針B’保存在被依賴模塊的函數指針管理機制中。
結合第二方面,在第二方面第一種可能的實現方式中,所述函數指針處理單元還包括
指針執行單元,在調用函數B或函數D時,從被依賴模塊的函數指針管理機制內獲取函數指針B’,并執行函數指針B’。
本發明第二方面的所述解除程序模塊循環依賴的系統能夠實現第一方面及第一方面的各實現方式中的方法,并取得相同的效果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于鄭州云海信息技術有限公司,未經鄭州云海信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810930592.5/2.html,轉載請聲明來源鉆瓜專利網。





