如何处理工厂模式创建的对象

时间:2010-04-19 09:05:17

标签: .net design-patterns garbage-collection dispose

我正在使用Factory模式来创建类的.NET对象。我还需要确保在应用程序终止之前处理所有这些对象。

在哪里以及如何处理工厂模式创建的对象?我应该在我正在获取工厂创建的对象的类中进行处理吗?

2 个答案:

答案 0 :(得分:7)

当你的工厂创建新的IDisposable对象时,调用者通常应该处理这样的对象。一个可取的模式如下:

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

当您的工厂使用某个内部池时,仍然建议让调用者处理该对象,但在这种情况下,只要实例处理完,它就应该返回到池中。然而,这样的设计要复杂得多。

答案 1 :(得分:4)

为什么要在应用程序终止之前处置它们?这是因为他们拥有非托管资源吗?

如果是这种情况,只需实现IDisposable并在Dispose方法中执行清理,然后让.Net处理剩下的事情。