История изменений
Исправление summon, (текущая версия) :
Т.е. если ты можешь реализовывать интерфейсы, у тебя уже нет отношения is-a?
Ни интерфейсы, ни отношение «is-a» не имеет ничего общего с ООП. К счастью, большинство ООП языков эти концепты реализуют.
ООП - это про объекты (не интерфейсы) и их наследование (не про реализацию интерфейса) - то есть про неявное, глобальное, не переиспользуемое переопределение части программы.
По сути, ООП - это коряво сделанный, неявный dependency injection реализованный на уровне языка.
Именно по этому, в современных подходах к написанию программ на «ООП» языках используются только
- Реализации интерфейсов
- Композиция/делегирование через реализацию интерфейса или даже без интерфейса, через явный DI
Само наследование не/крайне редко используется и полно всяких классов без состояний - по сути просто функций объединенных в модули за неимением нормальной поддержки вторых.
Исходная версия summon, :
Т.е. если ты можешь реализовывать интерфейсы, у тебя уже нет отношения is-a?
Ни интерфейсы, ни отношение «is-a» не имеет ничего общего с ООП. К счастью, большинство ООП языков эти концепты реализуют.
ООП - это про объекты (не интерфейсы) и их наследование (не про реализацию интерфейса) - то есть про неявное, глобальное, не переиспользуемое переопределение части программы.
По сути, ООП - это коряво сделанный, неявный dependency injection реализованный на уровне языка.
Именно по этому, в современных подходах к написанию программ на «ООП» языках используются только
- Реализации интерфейсов
- Композиция/делегирование через реализацию интерфейса
Само наследование не/крайне редко используется и полно всяких классов без состояний - по сути просто функций объединенных в модули за неимением нормальной поддержки вторых.