Оглавление:
Карта сайта:
Оглавление:
Карта сайта:
Это старая версия документа!
Шаблон «Посетитель» выполняет операции над объектами других классов. Главной целью является сохранение разделения
направленности задач отдельных классов. При этом классы обязаны определить специальный контракт, чтобы позволить
использовать их Посетителям (метод «принять роль» Role::accept в примере).
Контракт, как правило, это абстрактный класс, но вы можете использовать чистый интерфейс. В этом случае, каждый
посетитель должен сам выбирать, какой метод ссылается на посетителя.
Главными преимуществами применения этого паттерна являются следующие:
При этом в качестве основного недостатка выделим то, что затруднено добавление новых классов к системным «элементам»,
поскольку требуется объявление новой абстрактной операции в классе «Посетитель».
Использование:
хотите «засорять» классы такими операциями.
Преимущества:
Недостатки:
Связи с другими паттернами
получателей.
– за выполнение действий над каждым её компонентом.