Посетитель — поведенческий паттерн, позволяющий добавлять новые операции в существующую иерархию классов, не изменяя сами классы. Вы отделяете алгоритм от структуры объектов: вместо добавления нового метода в каждый класс иерархии вы создаёте класс-Посетитель с выделенным методом для каждого класса. Классам иерархии нужен лишь метод accept(Visitor) — добавленный однажды, он открывает их для неограниченного числа будущих операций.
ℹ️
Ключевая идея: двойная диспетчеризация — при вызове element.accept(visitor) метод accept() элемента вызывает visitor.visit(this), направляя выполнение к перегрузке метода, соответствующей конкретному типу элемента. Это позволяет добавлять новые операции, не трогая существующие классы элементов.
Full content is available with a subscription.
Get full access to all courses on the platform for one year with a single payment.
▼
Unlike other platforms that charge per course, here you get everything for one price, and after one year of use there will be no automatic charge for the following year.