2010-09-05 7 views
3

en double possible:
Why are circular dependencies considered harmful?Références circulaires

J'ai un objet de ligne et un objet point. Une ligne a des références à deux points, et chaque point a une référence à l'objet ligne auquel il appartient.

J'ai entendu quelque part (je pense) que les références circulaires sont une mauvaise chose, mais je ne comprends pas pourquoi. Quelqu'un peut-il me renseigner avec quelques détails?

+1

Pourquoi le Point a-t-il besoin d'un lien vers la ligne à laquelle il appartient? Où l'utilisez-vous? –

Répondre

1

Reference counting est une technique courante pour la gestion de la mémoire/des ressources, et les références circulaires ne sont pas adaptées. Si l'objet A contient une référence à l'objet B et l'objet B contient une référence à l'objet A, les deux objets ont un nombre de références de 1 et ne peuvent pas être récupérés, même si aucun des deux n'est référencé ailleurs.

Les éboueurs les plus sophistiqués sont capables de traiter les cycles, donc ce problème ne se produit pas.

1

Une façon de résoudre le problème est avec les garbage collector. Parce qu'ils tiennent une référence les uns aux autres, ils ne devraient pas trouver les objets éligibles à la collecte. Mais la plupart des éboueurs ont une détection pour les dépôts circulaires et les collectent de toute façon.

Voir aussi this question.

Questions connexes