2014-01-10 94 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.不管他們被定義沒有共同點可以在每個中定義。

無需循環檢測。循環檢測看似一件小事,但對於每一個對象所有的時間,這樣會帶來的開銷。