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

Застосування:

  • У структурі присутні об’єкти багатьох класів з різними інтерфейсами, і ви хочете виконувати над ними операції, що залежать від конкретних класів.

  • Відвідувач дозволяє додати ту саму операцію до різних типів об’єктів, які він відвідує.

  • Над об’єктами, що входять до складу структури, треба виконувати різноманітні, не пов’язані між собою операції, та ви не хочете засмічувати класи такими операціями.

  • Відвідувач дозволяє об’єднати родинні операції, помістивши їх в один клас. Якщо структура об’єктів є спільною для кількох додатків, то шаблон відвідувач дозволить у кожну програму включити лише операції, що до нього відносяться.