问题标签 [cyclic-dependency]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 如何根据依赖关系重新排列数组中的项目?并且还检测任何循环依赖
给定类型:
假设我有一系列Field
项目:
很明显,我们按以下顺序获取我们的项目:
- 名
- 全名
- 年龄
- 姓
- 出生日期
我的第一个问题: 重新排列列表/数组中的项目的最佳方法是什么,以便将依赖列(全名和年龄)放在它们依赖的列之后,例如:
- 名
- 姓
- 全名
- 出生日期
- 年龄
所以像Age 这样的字段总是在它所依赖的DateOfBirth之后。
我的第二个问题:有没有办法检测循环依赖?即何时
Field1
取决于 Field2
和
Field2
取决于 Field3
和
Field3
取决于 Field1
所以我们不会陷入一个圈子。例如,当你大学毕业后,你需要有 2 年的工作经验才能找到工作。但是要获得工作经验,您首先需要有工作。
java - 后端模块需要来自表示层的 URL - 如何避免循环依赖?
我的网络应用程序中的 URL 生成负责表示层。现在考虑另一个模块发送包含 URL 的消息。(不一定从演示文稿中触发)。但是,表示层必须了解模块(因为它可能是触发器,并且用户可以使用前端配置模块)。
即模块相互依赖......有什么想法可以避免这种循环依赖?
在我的数据库中存储 URL 对我来说似乎不合适,合并两个模块也是如此。
c++ - 头文件之间的循环依赖
我正在尝试用两个类实现一个树状结构:Tree
和Node
. 问题是我想从每个类调用另一个类的函数,所以简单的前向声明是不够的。
让我们看一个例子:
树.h:
节点.h:
调用树:
这只是一个简单的例子来说明问题。所以我想要的是Tree
从一个Node
对象调用一个函数。
更新#1:感谢您的回答。我试图像在 Java 中那样解决这个问题,即每个类只使用一个文件。看来我将不得不开始分离 .cpp 和 .h 文件......
更新#2:下面,按照提示,我也粘贴了完整的解决方案。谢谢,问题解决了。
c++ - 自定义库名称与系统库相同时的CMake循环依赖错误
我正在编写一个 CMakeLists.txt 文件来构建我的 C++ 项目,该项目由
- libhybris.so:具有一些导出功能的共享库。
- hybris:链接到 libhybris.so 的可执行文件
- 一组链接到 libhybris.so 的各种共享库
问题是,libhybris.so 依赖于 libpcre(用于正则表达式功能),所以我有以下语句:
第 3 点中的共享库之一称为 pcre.so,所以我也有以下内容:
因此,当我运行“cmake .”时,出现以下错误:
因为 CMake 认为 libhybris.so pcre 依赖项(系统 libpcre.so)与我的 pcre.so 相同,但显然不是。
如何在不更改 pcre.so 名称的情况下解决此问题?
function - clojure 函数循环依赖是设计明确禁止的,还是只是读者行为?
如果我在 clojure 中执行以下操作
我收到以下错误:
但是,如果我执行以下操作:
它运行得很好。
这是设计使然,还是仅仅是 Clojure 阅读器工作方式的一个功能?
c# - C#:带有循环链接的节点的 xml 序列化
我有一个类节点是这样的:
这基本上定义了一个简单的图形。我想将我的图表序列化为人类可读的形式,所以通常我会说 xml 是要走的路。但是 XML 在制作时并没有考虑到循环依赖 :)
那么-对我的图进行序列化的最佳方法是什么?
我可以想到几个方法:
- 抛弃 XML,创建我自己的格式。
- 使用 XML,使用唯一 ID 标记每个节点,将连接列表与节点分开存储并在加载后解析
但我认为其他人以前一定遇到过同样的问题,所以可能有一些更好的选择。有谁知道可靠的方法?
f# - F#中不同文件的类型和函数之间的循环依赖问题
我当前的项目使用具有 40 种不同类型(可区分联合)的 AST,并且该 AST 中的几种类型具有循环依赖性。类型不是那么大,因此我将它们放在一个文件中并type ... and ...
为相互依赖的类型应用构造。
现在,我正在添加函数以在 AST 中的每个元素下进行一些计算。由于有很多函数,其中包含几行代码,为了使源代码更清晰易读,我将这些函数分隔在不同的文件中。
在没有循环依赖的情况下没关系,当依赖函数在同一个文件中时也可以 - 在这种情况下我可以使用let rec function1 ... and function2 ...
构造。
但在我的情况下它不起作用。
另外,我错误地认为签名文件可以帮助我解决这个问题,但它们的行为与 C++ 不同
- 它们用于定义函数/类型访问模式(内部/公共),也可以在此处添加函数/类型注释头。
我看到的唯一可能的解决方案是将所有功能移动到一个文件并使用let rec ... and ... and ... and ... and ...
构造。
可能有人有不同的想法?
python - Python中的循环模块依赖和相对导入
假设我们有两个具有循环依赖的模块:
这两个模块都在pkg
一个空的目录中__init__.py
。导入pkg.a
或pkg.b
工作正常,如this answer中所述。如果我将进口更改为相对进口
我ImportError
在尝试导入其中一个模块时得到一个:
为什么我会收到此错误?情况不是和上面差不多吗?(这与这个问题有关吗?)
编辑:这个问题与软件设计无关。我知道避免循环依赖的方法,但无论如何我对错误的原因很感兴趣。
maven - Maven、鸡和蛋中的循环依赖
我有一个名为“talktome”的项目,没有运行时依赖项。
我也有项目'talktome-tools',它取决于'talktome'。
没问题,直到我意识到“talktome”中的单元测试依赖于“talktome-tools”。
有哪些解决方案?
java - 为什么Java禁止继承内部接口?
即为什么下面的“循环依赖”是不可能的?
由于接口不引用外部类,这应该是允许的;但是,编译器迫使我在类之外定义这些接口。这种行为有什么合乎逻辑的解释吗?