Иерархия классов, использующих одноразовый объект. Реализовать IDisposable на всех из них?

У меня есть класс, который использует файловый поток. Он должен закрыть поток, когда приложение завершает работу, поэтому я заставляю класс реализовывать IDisposable.

Этот класс является членом другого класса, который является членом другого класса и т. Д. Вплоть до моего основного приложения.

Должен ли я реализовать IDisposable для всех этих классов?

Что, если в будущем я изменю реализацию файла так, чтобы он закрывал файл после каждой записи? Теперь у меня есть целый набор классов, которые без причины реализуют IDisposable.

Думаю, мне неудобно переносить семантику IDisposable в классы, которые не нуждаются в них, кроме некоторых мелких деталей реализации ниже по цепочке. Есть ли способы обойти это?

10
задан Fischermaen 18 November 2011 в 15:49
поделиться