2014-01-10 1 views
0

псевдокод:родитель-потомок Loops (бесконечные родительские отношения)

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-сетки, и мы хотим, чтобы перевести объект А на оси х 2 шт. Как правило, отношения родитель-потомок будут перемещать любые дочерние элементы A. Таким образом, он проходит через дерево дочерних элементов и переводит каждый ребенок на 2 оси по оси x с A. Затем он достигает объекта A в дереве, а не перемещает его , почему бы просто не проверить его идентичность, и если идентификация верна, то перестаньте перемещать вещи?

Разве это просто лень со стороны разработчиков программного обеспечения?

ответ

1

Я предлагаю, чтобы это было эквивалентно и обычно считалось более легким иметь объект D, который является родительским объектом Object A, Object B и Object C. Независимо от того, что из трех может быть определено в D. Независимо от того, что они не имеют общего, могут быть определены в каждом.

Не требует обнаружения цикла. Обнаружение цикла может показаться небольшим делом, но оно будет постоянно налагать накладные расходы для каждого объекта.