Дмитрий Нестерук - Черная магия паттерна «Посетитель»

Поделиться
HTML-код
  • Опубликовано: 8 ноя 2024
  • Подробнее о конференции DotNext: jrg.su/3WmFRE
    - -
    «Посетитель» (visitor) - один из самых сложных паттернов Банды Четырех. Благодаря гибкости языка C#, у этого паттерна есть много возможных реализаций и вариаций, которые Дмитрий и рассмотрит в этом докладе.
    Скачать презентацию: assets.ctfasse...

Комментарии • 6

  • @АлександрК-у6ю
    @АлександрК-у6ю 2 года назад +7

    Нормальный такой у Дмитрия сетап) Качество звука и видео отличное.

  • @КоеКто-х7и
    @КоеКто-х7и Год назад +1

    30:15 " это требует изменений корневого элемента иерархии причем не только изначально но и при добавлении в иерархию новых классов". А что мешает сделать Match внешней функцией, даже extension?

  • @КоеКто-х7и
    @КоеКто-х7и Год назад

    44:11 это лучше делать на Visit MultipleExpression проверяя детей. Без проверки is можно обойтись если сделать в Expression 2 virtual property IsCompound и int Precedence.

  • @MrFrimko
    @MrFrimko 2 года назад

    двух связаный визитор лучше паттерн!

  • @ivankochurkin1720
    @ivankochurkin1720 2 года назад

    Пример с приоритетом операций неудачный - приоритеты разрешаются во время парсинга и визитору не надо о них знать вообще, дерево будет обходиться в нужном порядке.

    • @zadykian
      @zadykian 2 года назад

      Тут скорее речь шла о том, чтобы выставлять скобки в строковом представлении expression-а только в тех случаях, когда это необходимо. Иначе возникало бы что-то вроде ((2+3)+5)
      А вот если бы задача была в том, чтобы вычислить выражение, то да, приоритеты разруливались бы только за счет структуры дерева