我该如何确定是否应该在我的接口上扩展IDisposable,还是在实现我的接口的类上实现IDisposable?
我有一个不需要处理任何外部资源的接口,除了其中一个特定的实现。我的选择似乎是:
1) 在要求所有实现都实现Dispose(即使只是空方法)的接口上实现IDisposable。
-或-
2) 仅在具有需要处理的资源的类上实现IDisposable。这会在使用时造成问题,因为我的对象是从工厂创建的,因此所有上游代码都针对接口工作。由于接口没有绑定到IDisposable,因此“using”看不到Dispose方法。不过,我可以将工厂结果转换为实现;但这会使使用者意识到实现,从而破坏了接口的目的。
有没有关于最佳实践的建议?
我有一个不需要处理任何外部资源的接口,除了其中一个特定的实现。我的选择似乎是:
1) 在要求所有实现都实现Dispose(即使只是空方法)的接口上实现IDisposable。
-或-
2) 仅在具有需要处理的资源的类上实现IDisposable。这会在使用时造成问题,因为我的对象是从工厂创建的,因此所有上游代码都针对接口工作。由于接口没有绑定到IDisposable,因此“using”看不到Dispose方法。不过,我可以将工厂结果转换为实现;但这会使使用者意识到实现,从而破坏了接口的目的。
有没有关于最佳实践的建议?