Відвідувач (англ. Visitor) — поведінковий шаблон проєктування, основним призначенням якого є додавання дод. функціонала для об’єктів різних класів, не змінюючи їх. Для цього цей функціонал переноситься в сам клас Відвідувача.
Застосування:
-
У структурі присутні об’єкти багатьох класів з різними інтерфейсами, і ви хочете виконувати над ними операції, що залежать від конкретних класів.
-
Відвідувач дозволяє додати ту саму операцію до різних типів об’єктів, які він відвідує.
-
Над об’єктами, що входять до складу структури, треба виконувати різноманітні, не пов’язані між собою операції, та ви не хочете засмічувати класи такими операціями.
-
Відвідувач дозволяє об’єднати родинні операції, помістивши їх в один клас. Якщо структура об’єктів є спільною для кількох додатків, то шаблон відвідувач дозволить у кожну програму включити лише операції, що до нього відносяться.