В чем разница между составным рисунком и рисунком посетителя? - PullRequest
0 голосов
/ 28 мая 2018

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

1 Ответ

0 голосов
/ 28 мая 2018
Шаблон

Composite позволяет клиенту одинаково обрабатывать составные и отдельные объекты.Например, большинство каркасов компонентов пользовательского интерфейса использует составной шаблон.Это буквально part-whole иерархия содержания.Вы можете обрабатывать текстовые объекты и графику так же, как в редакторе документов для экземпляра.

Шаблон Visitor представляет операцию, выполняемую с элементами структуры объекта.Visitor позволяет вам определить новую операцию, не изменяя классы элементов, с которыми она работает.Рассмотрим иерархию оборудования, которая является Composite.Например, шасси может содержать диски и планарные платы, шина может содержать карты, а шкаф может содержать шасси и так далее.Вы можете рассчитать детали инвентаря и дать скидку на общую стоимость оборудования.Это может быть достигнуто с помощью Visitor, и добавление некоторой новой операции / алгоритма может быть сделано без изменения иерархии оборудования.Вам просто нужно добавить новый Visitor.В этом красота Visitor рисунка.

Итак, вот связь между двумя шаблонами: Visitors может использоваться для применения операции над структурой объекта, определенной шаблоном Composite.

...