Дмитрий Нестерук - Черная магия паттерна «Посетитель»
HTML-код
- Опубликовано: 8 ноя 2024
- Подробнее о конференции DotNext: jrg.su/3WmFRE
- -
«Посетитель» (visitor) - один из самых сложных паттернов Банды Четырех. Благодаря гибкости языка C#, у этого паттерна есть много возможных реализаций и вариаций, которые Дмитрий и рассмотрит в этом докладе.
Скачать презентацию: assets.ctfasse...
Нормальный такой у Дмитрия сетап) Качество звука и видео отличное.
30:15 " это требует изменений корневого элемента иерархии причем не только изначально но и при добавлении в иерархию новых классов". А что мешает сделать Match внешней функцией, даже extension?
44:11 это лучше делать на Visit MultipleExpression проверяя детей. Без проверки is можно обойтись если сделать в Expression 2 virtual property IsCompound и int Precedence.
двух связаный визитор лучше паттерн!
Пример с приоритетом операций неудачный - приоритеты разрешаются во время парсинга и визитору не надо о них знать вообще, дерево будет обходиться в нужном порядке.
Тут скорее речь шла о том, чтобы выставлять скобки в строковом представлении expression-а только в тех случаях, когда это необходимо. Иначе возникало бы что-то вроде ((2+3)+5)
А вот если бы задача была в том, чтобы вычислить выражение, то да, приоритеты разруливались бы только за счет структуры дерева