问题标签 [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.

0 投票
2 回答
3048 浏览

go - 在没有循环依赖的 Go 中注册包

我有一个中央包,它提供了其他包所依赖的几个接口(让我们称之为一个Client)。那些其他包提供了这些第一个接口(UDPClient, TCPClient)的几种实现。Client我通过调用NewClient中央包来实例化 a ,它从依赖包之一中选择并调用适当的客户端实现。

当我想告诉中央包关于那些其他包时,这就会崩溃,所以它知道它可以创建什么客户端。那些依赖的客户端实现也导入了中央包,创建了 Go 不允许的循环依赖。

最好的前进方式是什么?我不希望将所有这些实现混搭在一个包中,并且创建一个单独的注册表包似乎有点过头了。目前我让每个实现都将自己注册到中央包,但这要求用户知道在每个使用客户端的单独二进制文件中导入每个实现。

0 投票
1 回答
951 浏览

linker - 具有循环依赖关系的库的 C++ 链接器顺序

我在两个单独的 cpp 文件中有两个类一和二。内容如下

和 Two.cpp 是

我使用创建一和二的静态库

对于main,我调用foo1两个类的各自函数并编译main如下

即使我更改一和二的顺序,代码也会编译。

我期待代码不应该编译,除非我重复一和二的顺序,因为存在循环依赖。

可能是什么原因?

我正在使用 g++ 版本 4.8.2 运行 ubuntu 14.04

0 投票
1 回答
1392 浏览

java-8 - Java 8 的循环依赖分析 - 用于自动构建

我将处理一个项目,该项目使用 JDepend 自动生成循环包依赖关系报告,作为我们 CI 构建的一部分。(我主要对包级别的依赖关系感兴趣,所以我一直在使用 XSLT 的精简版本来获得更集中的报告——不过,它是普通的 JDepend。)

但是,我们即将将该项目迁移到 Java 8,我发现 JDepend 不适用于使用 JDK 1.8 编译器编译的代码。JDepend 似乎不再被积极更新。

我正在尝试找到一个替代品:

  • 适用于 JDK 1.8 编译的类和/或 jar。
  • 报告包和/或 jar 级别的循环依赖项。
  • 可以从 Ant 自动化(命令行可执行文件就可以了)。
  • 生成可以从项目主页链接并在浏览器中打开的报告(例如 HTML 或纯文本输出 - 不是桌面应用程序)。
  • 还(最好)产生 - 或可以配置/调整以产生 - 仅循环依赖的集中报告(如 JDepend 可以,如果您修改 XSLT)。
0 投票
1 回答
1554 浏览

dagger - 打破 Dagger 中的循环依赖

我对匕首很陌生——我什至不知道它是否适用于我的应用程序

我有一个搜索页面,它返回有关给定名人的最新消息。

我写了一个测试来验证当我们搜索一个受欢迎的名人时结果会出现在页面上。

page有一个,它的构造函数searchField中需要page,所以我用于测试的网络驱动程序可以选择它。

名人搜索页面测试

名人搜索页面

名人搜索页面模块

文本域

问题是page需要searchField,但searchField需要page。如何克服这种循环依赖?

我无法searchField在 CelebritySearchPage 内部初始化

0 投票
1 回答
585 浏览

perl - 使用 Perl 查找有向图中的所有循环依赖项

我正在寻找 Perl 脚本可以检测有向图中的所有循环节点的问题的解决方案? 例如,我有以下图表:

在其余代码中,我需要逻辑帮助来收集所有涉及循环依赖的节点。例如,在我的例子中,在节点“A”上,存在循环依赖。如何递归实现dependBy函数来查找循环边或依赖项?

0 投票
1 回答
2230 浏览

clojure - Clojure 中的循环负载依赖关系

我的项目有一个简单的结构如下:

name_dialog依赖于core,并且core应该需要name_dialog

所以我有这样的依赖:

核心.clj

对话框.clj

name_dialog.clj

当我尝试运行程序时,出现以下错误 Cyclic load dependency: [ /ddsl/core ]->/ddsl/dialogs->[ /ddsl/core ]

请告诉我,如何重组我的项目(我是 Clojure 的新手)。

0 投票
1 回答
6054 浏览

c++ - 不是类、命名空间或枚举?

我的老师给了我一个要学习的代码,我不知道什么时候我typedef的地图(正如我在代码中评论的那样)它工作正常,但是当我没有typedef它定义时似乎不起作用。如果有人可以解释一下,我将不胜感激!我读了一些关于“循环依赖”的东西,但不确定这里是否是这种情况。

0 投票
2 回答
256 浏览

design-patterns - 如何在不使用代理模式的情况下打破和改善循环依赖?

我的课程依赖于太多其他课程,我找不到改进它的方法。问题如下:

我有一个 ProductRepo、ProductFactory 和一个 ImageFactory 类。ProductRepo 对产品表执行 db 操作并将行作为数组获取。这个数组被传递给 ProductFactory 来创建一个 Product Modal。产品模式也有与之链接的图像。

客户端代码:

所以,我有以下问题:

  1. 循环依赖 ProductRepo --> ProductFactory --> ProductRepo

    要跳过这个,我可以使用 setter 注入或使用代理模式。但我认为这不是一个好的解决方案。遇到这样的问题,大家是怎么处理的?

  2. ProductRepo 依赖于 ProductFactory 和 ImageFactory。依赖多个工厂是一种好习惯吗?

我认为问题很清楚。:) 谢谢

0 投票
1 回答
66 浏览

sprite-kit - 如何解决我的 SpriteKit 游戏类中的循环依赖

我有:
1. 扩展 SKSCene 的类 GameScene:

以及扩展 SKSpriteNode 的 Hero 类:

我希望这两个类(Hero 和 GameScene)相互了解并使用彼此的方法(更不用说 XCode 为两个类编写方法的自动完成功能。不知何故,这在 XCode SpriteKit 中是不允许的,因为循环依赖,我能理解,但希望它不存在。有什么建议吗?

0 投票
2 回答
296 浏览

java - 如何打破设计中的循环依赖

我正在寻找一个设计解决方案来解决我有两个相互依赖的类的问题,这样我就有了class Customerclass Order在哪里:

Customer可以有一个订单列表(1 对 N)并且Order有一个指定的客户(1 对 1)。

打破这种依赖关系的最佳实践是什么?