Испугались?
Всем привет!
На самом деле хочется ещё раз поднять тему наследования реализаций.
После погружения в Dependency Injection практику программирования стало ясно, что наследование создает очень сильную связь между наследником и базовым классом.
Соответственно встает вопрос, а нужно ли наследование (реализации) вообще.
И даже если уж так нужно именно наследование реализации (допущу что в редких случаях оно может понадобится) то какие обходные пути есть.
Первое что приходит в голову — использовать включение. Конечно оно повлечет некоторый "синтаксический оверхэд"
, но всё же этот вариант присуствует.
Особенно он будет хорошо смотреться в некоторых языках в которых код можно генерировать налету (не будем называть такие языки вслух
)
Какие есть ещё варианты реализации наследования реализации без использования собственно самого наследования.
И в целом какие будут мысли:
PS:
Интересно не задумывался ли кто о написании языка который был бы изначально дружелюбным к Dependency Injection-у.
Т.е. в котором не было бы операции инстанциирования конкретного класса а только получение инстанса каким либо образом по его интерфейсу.
PPS:
Проще обсуждение вести в контексте языка C# & .NET в целом.