Angenommen, ich habe eine Klassensammlung, die eine Liste von Elementen enthält.Sollte ich mir in diesem Fall Sorgen um die Freigabe von Ressourcen machen?
Ich habe mehrere Instanzen dieser Collection-Klasse, die alle verschiedene MyLists haben, aber einige Elemente teilen. Zum Beispiel: Es gibt 10 Items, Collection1 Referenzen Items 1-4, Collection2 hat Items 2-8 und Collection3 4,7,8 und 10 auf seiner Liste.
Ich habe dies wie folgt implementiert: Ich habe eine globale Liste, die alle verfügbaren Elemente enthält. Bevor ich eine neue Sammlung erstelle, überprüfe ich, ob es bereits Elemente gibt, die ich in dieser Liste brauche - wenn nicht, erstelle ich das Element und füge es der globalen Liste (und natürlich der Sammlung) hinzu.
Das Problem, das ich sehe, ist, dass diese Elemente nie veröffentlicht werden - auch wenn alle Sammlungen weg sind, wird der Speicher, den sie verbrauchen, immer noch nicht freigegeben, weil die globale Liste immer noch darauf verweist. Ist das etwas, worüber ich mich Sorgen machen muss? Wenn ja, was soll ich tun? Ich dachte daran, der globalen Liste einen Zähler hinzuzufügen, um zu sehen, wann ein Artikel nicht mehr benötigt wird, und seine Referenz zu entfernen.
Bearbeiten: Es ist in der Tat ein Design-Problem, denke ich. Ich werde die Idee einer globalen Liste verwerfen und stattdessen alle Sammlungen durchlaufen und sehen, ob sie das benötigte Objekt bereits haben.
Danke für die Erwähnung schwacher Referenzen - ich wusste nichts über sie. Aber ich glaube nicht, dass sie für mein Problem relevant sind. – CaptainProton