2014-01-10 44 views
0

伪代码:亲子循环(无限父关系)

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

这是为什么通常在大多数程序(我从来没有见过它)不允许?当它是由一个循环,并停止执行任务

无法节目认识?


比如:
比方说,这些对象是三维网格,我们要对象A在x轴上2台平移。 一般,因此它通过儿童的树父子关系将移动A的任何子女,并且把每个孩子与A. x轴的2个单元后到达对象A的树,而不是移动它,为什么不只是让它检查身份,如果身份回复真实,然后停止移动的东西?

这只是对软件开发者的部分懒惰?

回答

1

我将表明,它是等效和通常被认为更容易有一个Object d即对象A,对象B的父,而对象C不管三个已在共同所用D.不管他们被定义没有共同点可以在每个中定义。

无需循环检测。循环检测看似一件小事,但对于每一个对象所有的时间,这样会带来的开销。