我有两个相互引用的 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
链接类型的源代码不会被编译到库中......
这听起来更像是您需要重新考虑您的代码。
也许您可以通过使用接口以一种方式消除依赖关系?
如果您可以概述依赖关系,也许我或其他人可以提供有关如何重新设计结构的想法。
编辑:
你给我一个减号真是太好了......让我引用维基百科关于这个主题的文章:
[...] 在软件设计中,较大软件模块之间的循环依赖被认为是一种 反模式,因为它们具有负面影响。
[...]
循环依赖会在软件程序中造成许多不良影响。从软件设计的角度来看,最大的问题是相互依赖的模块的紧密耦合,这减少了或使单个模块的单独重用成为不可能。
当一个模块中的小局部变化扩散到其他模块并产生不希望的全局影响(程序错误、编译错误)时,循环依赖可能会导致多米诺骨牌效应。循环依赖也可能导致无限递归或其他意外失败。
循环依赖也可能通过阻止某些非常原始的自动垃圾收集器(使用引用计数的那些)释放未使用的对象而导致内存泄漏。
[...]
循环依赖通常 由需要实现某种回调功能的缺乏经验的程序员引入。有经验的程序员通过应用像观察者模式这样的设计模式来避免这种不必要的循环依赖。
(重点补充)
但话又说回来,也许你比维基百科上的集体更聪明......