我正在使用Factory模式来创建类的.NET对象。我还需要确保在应用程序终止之前处理所有这些对象。
在哪里以及如何处理工厂模式创建的对象?我应该在我正在获取工厂创建的对象的类中进行处理吗?
答案 0 :(得分:7)
当你的工厂创建新的IDisposable
对象时,调用者通常应该处理这样的对象。一个可取的模式如下:
using (var instance = Factory.CreateInstance(someArg))
{
// use the instance
}
当您的工厂使用某个内部池时,仍然建议让调用者处理该对象,但在这种情况下,只要实例处理完,它就应该返回到池中。然而,这样的设计要复杂得多。
答案 1 :(得分:4)
为什么要在应用程序终止之前处置它们?这是因为他们拥有非托管资源吗?
如果是这种情况,只需实现IDisposable并在Dispose方法中执行清理,然后让.Net处理剩下的事情。