Re[19]: почему в C# до сих пор нет наследования конструкторов?
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.12.22 11:01
Оценка: +1 -1
Здравствуйте, Sharov, Вы писали:

S>Настраиваемая связь -- это паттерн декоратор, если virtual, override или new не хватает.

S>Гибкость связи: override -- привязываем к родителю, new -- отвязываем от родителя. Что может быть гибче?

S>Т.е нужен фрагмент кода, который подтверждал бы Ваш тезис, и невозможность как-то его изменить, что подтверждало бы

S>тезис про ненастраиваемость. В ответ -- уход от темы про способы реализации декоратора, и прочая обычная для Вас кака-бяка.

Ну вот смотрите, какая штука.
Допустим, вы хотите построить парсер некоторого DSL. Работать он будет, понятное дело, поверх некоторого StreamReader — хочется сделать его потоковым, и не зависеть от наличия в памяти всего разбираемого текста.
И вот вам захотелось иметь возможность репортить ошибки с привязкой к строка/позиция, а не просто "character #2213123".
Как вы это будете делать? Отнаследуетесь от SteamReader? Отнаследуетесь от TextReader? Сделаете свой класс, не отнаследованный ни от чего?
Какие методы придётся перекрыть? Какие — не придётся?

Это простое упражнение помогает прояснить различия между агрегацией, наследованием реализации, и наследованием интерфейса.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.