public interface IFoo : IDisposable
{
void Test();
}
public class TestImpl : IFoo
{
public void Test()
{
// do something
}
public void Dispose()
{
// disposing my dependencies
}
}
public class FooFactory
{
public IFoo CreateFoo()
{
return new TestImpl();
}
}
public class Client
{
public void Main()
{
FooFactory factory = new FooFactory();
using(IFoo foo = factory.CreateFoo())
{
// do stuff then auto-dispose
foo.Test();
}
}
}
在这里,我想要两件事情: 1. 使用C#的using语句,以便我可以优雅地处理我的具体对象的依赖项(无需将任何内容转换为IDisposable)。 2. 使用工厂方法创建一个具体对象,这样我就可以仅使用接口来工作。
这两个实践都是众所周知的好习惯,但是一起使用呢?我没有找到任何说这是错误的东西 http://msdn.microsoft.com/en-us/library/ms229022.aspx (MSDN - 接口设计),但我觉得这听起来不太好...
我会感激任何关于此事的评论。如果这是一个不好的实践,使用这种方法会遇到哪些问题?
谢谢!