Из той же статьи: «Воскресения очень мало, и вам действительно следует избегать его, если это возможно».
Лучшее использование, которое я могу придумать, - это шаблон «переработка».Рассмотрим Фабрику, которая производит дорогие, практически неизменные объекты;например, объекты, созданные путем анализа файла данных, или путем отражения сборки, или глубокого копирования графа «главного» объекта.Результаты вряд ли будут меняться каждый раз, когда вы выполняете этот дорогостоящий процесс.В ваших же интересах избегать создания экземпляров с нуля;однако по некоторым причинам проектирования система должна иметь возможность создавать множество экземпляров (без синглетонов), а ваши потребители не могут знать о Фабрике, чтобы они могли «вернуть» объект самостоятельно;им может быть вставлен объект, или ему может быть предоставлен делегат фабричного метода, из которого они получают ссылку.Когда зависимый класс выходит из области видимости, обычно это делает и экземпляр.
Возможный ответ - переопределить Finalize (), очистить любую изменяемую часть состояния экземпляра, а затем до тех пор, пока Factory будетв области, присоедините экземпляр к некоторому члену Фабрики.Это позволяет процессу сбора мусора, по сути, «перерабатывать» ценную часть этих объектов, когда в противном случае они выходили бы из области видимости и были бы полностью уничтожены.Фабрика может посмотреть и проверить, есть ли в мусорном контейнере какие-либо переработанные предметы, и если это так, она может отшлифовать ее и раздать.Фабрика должна будет создавать новую копию объекта только в том случае, если количество объектов, используемых процессом в целом, увеличилось.
Другие возможные применения могут включать в себя некоторые узкоспециализированные средства ведения журнала или аудита, где объекты вы хотитепроцесс после их смерти присоединится к рабочей очереди, управляемой этим процессом.После того, как процесс обработает их, они могут быть полностью уничтожены.
В общем, если вы хотите, чтобы иждивенцы ДУМАЛИ, что они избавляются от объекта, или вам не нужно беспокоиться, но вы хотите сохранить экземплярВоскресение может быть хорошим инструментом, но вам придется ОЧЕНЬ внимательно его смотреть, чтобы избежать ситуаций, в которых объекты, получающие воскрешенные ссылки, становятся «упакованными крысами» и сохраняют каждый экземпляр, который когда-либо был создан в памяти, на протяжении всего жизненного цикла процесса.