Как утилизировать объекты, созданные по заводскому шаблону - PullRequest
4 голосов
/ 19 апреля 2010

Я использую шаблон Factory для создания .NET-объектов класса. Мне также нужно убедиться, что все такие объекты должны быть удалены до завершения работы приложения.

Где и как можно утилизировать объекты, созданные по заводскому шаблону? Должен ли я располагать в классе, в котором я получаю объекты, созданные фабрикой?

Ответы [ 2 ]

7 голосов
/ 19 апреля 2010

Когда ваша фабрика создает новые IDisposable объекты, вызывающая сторона должна обычно располагать таким объектом. Рекомендуемый шаблон выглядит следующим образом:

using (var instance = Factory.CreateInstance(someArg))
{
    // use the instance
}

Когда ваша Фабрика использует некоторый внутренний пул, все же рекомендуется разрешить вызывающей стороне уничтожить объект, но в этом случае, как только экземпляр будет удален, его следует вернуть в пул. Однако такой дизайн гораздо сложнее.

4 голосов
/ 19 апреля 2010

Почему вы хотите утилизировать их до завершения работы приложения? Это потому, что они содержат неуправляемые ресурсы?

Если это так, просто внедрите IDisposable и выполните очистку в методе Dispose, и позвольте .Net позаботиться об остальном.

...