2010-09-05 90 views
3

可能重複:
Why are circular dependencies considered harmful?循環引用

我有一個線對象和一個點對象。一條線有兩個點的引用,並且每個點都有一個引用返回到它所屬的線對象。

我聽說某處(我認爲)循環引用是一件壞事,但我不明白爲什麼。有人可以填寫我的一些細節嗎?

+1

爲什麼Point需要鏈接回它所屬的行?你在哪裏使用這個? – 2010-09-06 04:10:59

回答

1

Reference counting是一種常見的內存/資源管理技術,循環引用不能很好地處理它。如果對象A包含對對象B的引用,並且對象B包含對對象A的引用,則兩個對象的引用計數均爲1,即使兩個對象均不在其他地方引用,也不能垃圾收集。

更復雜的垃圾收集器能夠處理週期,因此不會發生此問題。

1

他們可能成爲問題的一種方法是垃圾收集器。因爲他們持有對彼此的引用,他們不應該找到有資格收集的對象。但大多數垃圾收集器都檢測到循環依賴並收集它們。請參閱this question