Информация об изменениях

Сообщение Re: [ООП] Наследование интерфейсов друг от друга от 31.01.2024 8:17

Изменено 31.01.2024 8:24 fmiracle

Re: [ООП] Наследование интерфейсов друг от друга
Здравствуйте, dmitry_npi, Вы писали:

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

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

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

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


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

IList : ICollection



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

С другой стороны, злоупотребление этим тоже вреди.
Re: [ООП] Наследование интерфейсов друг от друга
Здравствуйте, dmitry_npi, Вы писали:

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

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

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

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


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

IList : ICollection



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

С другой стороны, злоупотребление этим тоже не полезно.