Re[5]: почему в C# до сих пор нет наследования конструкторов?
От: xpalex  
Дата: 29.11.22 05:57
Оценка: :)
Здравствуйте, Codealot, Вы писали:

X>>Для оберточного исключения, когда мы прячем сбой в кишках и экспортируем наружу только тип исключения своей библиотеки, достаточно третьей формы.


C>Одна — это уже boilerplate. То есть, больше чем нужно.


Хм. т.е. писать код код что бы удалить два других проще?

C>Ты не ответил на вопрос. Ты сделал заявление, что "если у объектов одинаковые api (т.к. наследование) и одинаковые конструкторы, следовательно у них одинаковые зависимости и следовательно они не отличатся".


Цепочка рассуждений достоаточно простая:
одинаковые конструкторы => одинаковый набор исходных данных.
одинаковый набор исходных данных, при эквивалентном api => одинаковый результат.

Другое дело, алгоритмы внутри могут отличаться, но тогда отношение между классами скорее sibling, чем hierarchy.

Но если мы используем глобальные зависимости или нарушаем LSP — то, конечно, утверждение неверно.

C>Про добавление данных и методов у классов-наследников, выходит, ты никогда не слышал?


И чем наполняются новые поля, если конструкторы не поменялись? Или вы адепт сеттер-инициализации?

Base object1 = new Base(...);
Base object2 = new Derived(...);

(object2 as Derived).callNewShinyMethod(); // мы точно сейчас говорим про наследование и ООП?


Еще раз повторюсь, использование наследования только для переиспользования кода мне кажетя избыточным. Мне достаточно композиции. Но это мой вкус.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.