问题标签 [cyclic-reference]

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 投票
1 回答
1023 浏览

java - 当方法递归时如何重构以避免循环依赖?

我已经编写了将对象转换为所需类型的代码。如果所需的类型是自定义类对象并且它有另一个对象,我们需要递归地转换它。顺便说一句:如果输入是 hashMap,我会知道我需要构造一个对象。如果在 HashMap 中,如果存在另一个 hashMap,那么我需要了解它的对象在对象中。我需要从内部 hashMap 构建内部对象。为了构建它,我将递归调用该方法。我在这里描述的代码。但是这 2 个类 Castor 和 MyBuilder 都变成了循环。我不知道如何打破它。如果方法不是循环的,我们可以打破依赖。但是对于循环,任何人都可以提供帮助吗?我可以引入任何模式或如何重构它?

提前致谢。

代码是这样的:为了更快地访问循环 pl,请参阅:returnValue castPrimitive( .... and void setParameterToEntity.....

} }

0 投票
1 回答
317 浏览

delphi - 绕过第 3 方循环 dll 依赖项?

我正在尝试在第 3 方应用程序中访问 TE 编辑(来自 ter32.dll)中的文本。(这里的第一篇文章)我查看了API并尝试动态加载 dll 以访问函数。不幸的是,ter32.dll 的这个(售后返工)有很多依赖项。我尝试根据需要动态加载每个所需的 dll,但遇到了循环依赖。ter32.dll 需要 x。x 需要 y。y 不会加载,因为它需要 x。我是否必须延迟静态加载这些?我当然希望不要,因为我不希望我的应用程序中出现开销/膨胀/依赖性。

1)我错过了什么?
2)有没有办法解决这个问题?
3) 是否有人有任何其他方式可以访问 ter32.dll 的 TE 编辑中的文本?

0 投票
2 回答
239 浏览

java - 循环依赖——总是错的?

1.我想知道以下结构是否不正确,原因是什么,解决方法是什么:假设我已经实现了一个网络游戏客户端客户端有2个主要包:
A.GUI - 保存所有swing Jpanels 等
B.LogicEngine

在逻辑引擎中,我有一个名为 clientThread 的类,其主要目标是与服务器通信以获取要在 Gui 面板上执行的命令,并根据用户在 Gui 面板上的选择发送回信息。

2.为了做到这一点,我倾向于在clientThread中保留我的主Gui面板的引用,反之亦然,在两个不同项目的类之间进行循环引用有那么错误吗?

3.在面向对象编程的问题上,从类中执行要在 Gui 上显示的内容是否是错误的,例如客户端线程,尽管它在逻辑引擎包上,但它以某种方式负责管理游戏流程?

4.如果 Gui 部分知道并使用逻辑部分是否有问题?

想听听一些建议
非常感谢

0 投票
0 回答
368 浏览

.net - 如何在 Entity Framework 4.1 中创建没有 CASCADE 的多对多关系?

我正在使用 Entity Framework 4.1 制作一个 MVC3 Web 应用程序。问题是我有一个循环引用并且我得到了一个例外。我明白为什么这是错误的,所以我想从我的多对多关系中删除 ON DELETE/UPDATE CASCADE。问题是我不知道该怎么做......这就是我的问题的描述。这是我的模型:

问题->-。
       | |
       | |
      /|\ |
  领域 |
       | |
       | |
      /|\ |
 答案-----'

每个问题都有多个字段,每个字段都有多个答案。当我删除一个问题或答案时,我想删除相应的答案。我认为这里不需要做额外的工作。但是,每个答案都可以有多个从属问题(每个问题都可以依赖于许多答案)。这种关系仅在其他问题的答案为“是”时才用于显示问题,例如...现在,如果我删除一个答案,我不想删除所有依赖于它的问题,只删除依赖项。

在我的模型中,问题对象具有:

QuestionAnswer 对象有:

如何在具有以下属性的 DataContext 类中定义 OnModelCreating 事件中的预期行为:


编辑

我找到了解决问题的方法!我手动创建了 QuestionAnswerDependency 对象,如下所示:

我将 QuestionId 属性设置为可为空,这导致 DELETE 上没有 CASCADE 并解决了循环引用。现在 Question 和 QuestionAnswer 对象有一个 QuestionAnswerDependency 对象列表:

我认为 EF 无法自动执行我想要的操作,但如果您知道如何在不创建“中间对象”的情况下实现这一目标,请告诉我。

0 投票
1 回答
333 浏览

.net - MongoDb C# Driver 支持循环引用?

我正在考虑移植一个小型项目以使用 Mongo,因为在当前场景中使用 Nhibernate 变得越来越耗时。

我最初尝试了 NoRM,它有一个支持循环引用并且工作正常的分支,但是我找不到任何文档来表明官方 c# 驱动程序是否支持它。

这种情况以及为什么我有一个循环引用是因为我有一个位置对象,其中包含一个道路列表,每条道路都有一个到另一个位置的链接。它非常类似于探路者中的一组简单节点。

现在的问题是我有一个由这些对象构建的整个世界(它们在真实场景中具有更多属性)并且它们都相互链接,但是由于无法处理循环引用,我不确定如何解决这个问题,因为每条道路都需要知道起点和终点。

我知道一种折衷方案是去掉位置对象,取而代之的是一个引用该位置的 Id,但是我必须单独查询每个子位置。这只完成一次,然后保存在内存中,因为有一张巨大的地图,其中包含所有可能的位置和所有可能的路线,因此可以在点之间找到快速路径。

可能是位置和道路不适合文件存储方式的情况,可以以其他方式存储......

0 投票
5 回答
9577 浏览

c# - Cycle in the struct layout that doesn't exist

This is a simplified version of some of my code:

The problem is the error Struct member 'info' causes a cycle in the struct layout. I'm after struct like value type behaviour. I could simulate this using a class and a clone member function, but I don't see why I should need to.

How is this error true? Recursion could perhaps cause construction forever in some similar situations, but I can't think of any way that it could in this case. Below are examples that ought to be fine if the program would compile.

edit:

The solution I used was to make "info" a class instead of a struct and giving it a member function to returned a copy that I used when passing it. In effect simulating the same behaviour as a struct but with a class.

I also created the following question while looking for an answer.

Value type class definition in C#?

0 投票
4 回答
1676 浏览

c++ - 如何使用 std::shared_ptr 检测或避免循环引用?

我知道有weak_ptr打破循环,但这是一个修复,在问题被发现后。是否有可用于检测或避免循环引用的模式或工具?

0 投票
1 回答
988 浏览

python - django:在models.py中注册监听器和循环导入问题

我正在研究一些信号监听器,它们从模型创建记录。在 django 文档中,据说侦听器应该在 models.py 中注册。因为监听器的行数很大,我想把它们的逻辑从models.py文件中分离出来。就我而言,似乎它已经导致循环导入问题。在保持代码分离的同时避免这个问题的最佳方法是什么?

目前是这样的:models.py

听众.py

0 投票
1 回答
189 浏览

wcf - 使用 POCO 实体和 Silverlight 服务的循环引用

我创建了几个 POCO 实体,它们之间有关系。例如,“Individual”实体与“Collection”实体具有 OneToMany 关系。这是我定义它们的方式:

和 Collection 实体:

我的服务是与 Silverlight 兼容的服务,它是这样定义的:

这按预期工作:我收到一个填充有数据成员和空集合数组的单个对象。

但是,一旦我尝试包含关系:

我有一个堆栈溢出异常,这很烦人。我很确定这是一个循环引用错误,但是我尝试了所有解决方案(将 IsReference=true 添加到 DataContract 属性......)。唯一可行的方法是用 Collection 实体中的 IgnoreDataMember 属性替换 DataMember 属性,但是我失去了双向关系,这是我想要这个特定实体的东西......

0 投票
4 回答
11460 浏览

python - python中的引用循环是什么?

我查看了 python 的官方文档,但我似乎找不到参考循环是什么。任何人都可以澄清它对我来说是什么,因为我正在尝试理解 GC 模块。预先感谢您的回复。