Я включаю некоторый тип destroy()
метода почти в каждый класс, который я пишу. Этот метод отвечает за все экземпляры или ссылки на любые дочерние объекты в этом классе. Это включает в себя любые прослушиватели, ссылки на список отображения и т. Д. Затем, прежде чем я удаляю / обнуляю родительский элемент, я вызываю его метод destroy()
, чтобы обеспечить надлежащий сборщик мусора и избежать утечек памяти. Обратите внимание, что при необходимости это может связать глубоко вложенные объекты.
Вы могли бы просто использовать слабые ссылки и удалить весь объект. ASVM2, как правило, достаточно умен, чтобы правильно уничтожать дочерние объекты НО это в лучшем случае плохое управление GC, а вы просто просите утечки памяти.
Мои $ .02.