Re: [ООП] Наследование интерфейсов друг от друга
От: fmiracle  
Дата: 31.01.24 08:17
Оценка: +1
Здравствуйте, dmitry_npi, Вы писали:

_>Я считаю, что это только запутывает код.

_>Вспомним букву I в SOLID: интерфейс — это аспект поведения. У компонента может быть много аспектов, но они должны быть разделены.

_>Кроме очевидных исключений типа

_>
_>IEnumerable<T>: IEnumerable
_>


И чуть менее очевидные
ICollection : IEnumerable

IList : ICollection



Наследование интерфейсов с одной стороны необязательное, с другой стороны иногда упрощает код и понимание. Просто знаешь что если что-то реализует IList, то оно уже точно и перечислимо и коллекцией является, а не проверяешь каждый раз, что ThisSuperList реализует и IList и ICollection и IEnumerable.
Ну и банально — ты на вход принимаешь IList, и можешь напрямую использовать его и как IEnumerable, что логично.

С другой стороны, злоупотребление таким наследованием тоже не полезно.
Отредактировано 05.02.2024 7:07 fmiracle . Предыдущая версия . Еще …
Отредактировано 31.01.2024 8:24 fmiracle . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.