Visitor

Материал из Seo Wiki - Поисковая Оптимизация и Программирование
Перейти к навигацииПерейти к поиску

Шаблон Visitor(также известный как Посетитель)Шаблон проектирования

Поведенческий шаблон (Behavioral).

Описывает операцию, которая выполняется над объектами других классов. При изменении Visitor нет необходимости изменять обслуживаемые классы.

Проблема

Над каждым объектом некоторой структуры выполняется одна или более операций. Определить новую операцию, не изменяя классы объектов.

Решение

Для полной независимости посетители имеют отдельную от обслуживаемых структур иерархию. Структуры должны иметь некий интерфейс взаимодействия. При необходимости добавления новых операций необходимо создать новый класс ConcreteVisitor и поместить его в цепочку обхода обслуживаемых структур.

Рекомендации

1. в структуре присутствуют объекты разных классов с различными интерфейсами, и необходимо выполнить над ними операции, зависящие от конкретных классов.

2. Если над обслуживаемой структурой надо выполнять самые различные, порой не связанные между собой операции. Т.е. они усложняют(засоряют) эту структуру.

3. часто добавляются новые операции над обслуживаемой структурой.

Преимущества

- Упрощается добавление новых операций

- объединяет родственные операции в классе "Посетитель".

Недостатки

Затруднено добавление новых классов, поскольку требуется объявление новой абстрактной операции в классе "Посетитель".

bg:Посетител (шаблон) cs:Visitor (návrhový vzor) de:Visitor en:Visitor pattern es:Visitor (patrón de diseño) fr:Visiteur (motif de conception) it:Visitor ja:Visitor パターン pl:Odwiedzający (wzorzec projektowy) pt:Visitor Pattern vi:Visitor pattern zh:访问者模式

Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....