Шаблон "команда" по сравнению с шаблоном "посетитель"

Действительно ли обычно приемлемо позволить Посетителю изменять состояние Получателя, или это должно быть Шаблоном "команда" вместо этого?

8
задан jaco0646 15 November 2018 в 16:14
поделиться

2 ответа

Цель паттерна посетителя - позволить добавлять новые операции в иерархию классов без модификации этой иерархии. Я никогда не видел, чтобы кто-то предлагал, что допустимы только операции только для чтения. Единственным ограничением является то, что добавленные операции должны использовать только публичный интерфейс наследницы классов.

6
ответ дан 5 December 2019 в 17:35
поделиться

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

2
ответ дан 5 December 2019 в 17:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: