Имена классов были изменены для защиты невинных.
Если у меня есть интерфейс с именем ISomeInterface. У меня также есть классы, наследующие интерфейс, FirstClass и SecondClass. FirstClass использует ресурсы, которые необходимо утилизировать. SecondClass не делает.
Итак, вопрос в том, где я должен унаследовать от IDisposable? Обе следующие опции кажутся менее идеальными:
1) Сделать FirstClass наследовать IDisposable. Тогда любой код, который имеет дело с ISomeInterfaces, должен знать, следует ли им распоряжаться. Это пахнет крепкой связью со мной.
2) Сделать ISomeInterface наследовать IDisposable. Тогда любой класс, который наследует от него, должен реализовать IDisposable, даже если ему нечего распоряжаться. Метод Dispose будет по существу пустым, за исключением комментариев.
# 2 кажется правильным выбором для меня, но мне интересно, есть ли альтернативы.