当前位置: 首页 > 知识库问答 >
问题:

父子循环(无限的父关系)

汪永春
2023-03-14

伪代码:

Object A is a parent of Object B
Object B is a parent of Object C
Object C is a parent of Object A

为什么大多数程序通常不允许这样做(我从未见过)?

程序不能识别出它何时进行了循环并停止执行任务吗?

对于实例:
假设这些对象是3d网格,我们想在x轴上转换对象A 2个单位。通常,父子关系会移动A的任何子级。所以它穿过子树,并用A翻译x轴上的每个子级2个单位。然后它到达树中的对象A,而不是移动它,为什么不让它检查身份,如果身份返回true,然后停止移动东西?

这只是软件开发人员的懒惰吗?

共有1个答案

沈俊晤
2023-03-14

我建议,对象D是对象a、对象B和对象C的父对象,这是等价的,通常认为更容易。这三个对象的任何共同点都可以在D中定义。它们没有共同点的任何东西都可以在每个对象中定义。

无需周期检测。周期检测似乎是一件小事,但它会一直为每个对象带来开销。

 类似资料:
  • 问题内容: 我在excel中有父子数据,该数据已加载到运行MS SQL Server的第3方系统中。数据表示有向(希望)非循环图。第三方意味着我在架构中没有完全自由的手。excel数据是其他文件的串联,并且存在以下可能性:在各个文件之间的交叉引用中,有人引起了循环- 即X是Y的子级(X-> Y),然后是其他地方(Y-> A- > BX)。我可以在Excel或SQL Server数据库上编写vb,v

  • 我试图创建一个可以识别父子循环的函数<想象 对象A是对象B的父对象 对象B是对象C的父对象 创建一个可以防止父子循环的函数。该函数应该给出至少两个参数(ChilName、家长名),如果关系创建了一个循环,则会出错。在上面的例子中,如果我们通过(A、C)应该打印或传递字符串: “A是C的父级” 我知道如何创建这个函数(你可以用任何语言提供答案): 我的主要问题是如何在异常中提供正确的消息。(“A是C

  • 我有一个场景,需要在一种情况下加载所有子值,在另一种情况下加载一些特定的子值。我对这两种情况都使用一个bean,并使用命名查询编写查询。 现在在我的查询2中,我只需要加载字符串A,而不需要加载字符串B和字符串C。我试过使用 但得到以下错误 那么,关于如何继续这方面的任何建议。。

  • 使用JPA(Hibernate)我试图实现以下关系,并想知道其他人是否对最佳方法有任何建议: 基本上是完全不相关的对象,每个对象都有一个公共子对象的集合;在对象模型中实现简单,在数据库中稍微麻烦些! 我确信这一定是常见的事情,但是我很难找到任何示例实现,因为我真的不知道正确的搜索词。 谢谢你的时间!

  • 我们有一个模块化项目,包含大约10个工件: 此外,一些工件之间存在依赖关系: 我们当前的设置如下所示: parent是包含父POM的工件 这个父POM定义了所有必要的依赖项(比如Spring、JPA等等)进来 我们所有的工件也都在中定义 我们的工件将父工件称为明显的父工件 只有父POM定义版本。其他所有的POM都没有 我们使用三个数字的版本控制方案: 例如: 问题是: 一旦我们更改了工件的版本(例

  • hasNext()的定义是“如果此扫描仪的输入中有另一个标记,则返回true。此方法可能会在等待输入扫描时阻塞。扫描仪不会前进超过任何输入。” 当我把 standardInput.hasNext() 放在 for 循环中时,程序会向无穷大运行。但是如果我把它放在 while-loop 中,它不会运行到无穷大。这两个程序之间的区别在哪里,为什么其中一个有效而另一个无效? for循环: while-l