我有兩個互相引用的Flex庫。兩者都使用鏈接類型「External
」,然後我用Loader類手動加載。柔性庫中的循環依賴關係
我收到錯誤「A cycle was detected in the build path of project: foo
」。
有什麼辦法可以解決這個問題嗎?可能是編譯器的參數或其他東西。
我不認爲應該有一個問題,因爲與external
鏈接類型的源代碼不會被編譯成庫...
我有兩個互相引用的Flex庫。兩者都使用鏈接類型「External
」,然後我用Loader類手動加載。柔性庫中的循環依賴關係
我收到錯誤「A cycle was detected in the build path of project: foo
」。
有什麼辦法可以解決這個問題嗎?可能是編譯器的參數或其他東西。
我不認爲應該有一個問題,因爲與external
鏈接類型的源代碼不會被編譯成庫...
像你需要重新考慮你的代碼,這聽起來多。
也許你可以通過使用接口來單向依賴嗎?
如果您可以給出依賴關係的概述,也許我或其他人可以給出如何重新設計結構的想法。
編輯:
你真好,給我負...讓我關於這個問題引述Wikipedia article:
[...]在軟件設計圓形 依賴較大的軟件之間 模塊被認爲是 反模式,因爲它們的負面影響。
[...]
循環依賴可能導致軟件程序許多 不良影響。 從一個軟件 設計點最大的問題是互相依賴 模塊,其降低或使得 不可能單獨再使用一個 單個模塊的的緊 耦合。
循環依賴可引起 多米諾效應,當一個模塊中的小的局部變化 擴散到其他 模塊和具有無用的全局 效果(程序錯誤,編譯 錯誤)。循環依賴可能會導致無限遞歸或 其他意外故障。
循環依賴也可以通過防止某些 非常原始的自動垃圾 收集器(那些使用參考 計數)從解除分配未使用的 對象引起 內存泄漏。
[...]
循環依賴往往 通過誰需要實現 某種回調功能經驗的程序員介紹。 有經驗的程序員通過使用設計模式(如 觀察者模式)避免了 不必要的循環依賴關係 。
(強調)
但話又說回來,也許你比在維基百科上寫的集體智慧的...
+1相互引用是一個壞主意外部的Flex庫。解決這個問題的一個實際方法是合併這些庫,並將共同的依賴關係提取到第二個庫中,但仍然失敗了可重用庫的目的。 – Ryan