Skip to content

Latest commit

 

History

History

Visitor

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Посетитель (Visitor)

Паттерн Visitor относится к поведенческим паттернам уровня объекта.

Паттерн Visitor позволяет обойти набор элементов (объектов) с разнородными интерфейсами, а также позволяет добавить новый метод в класс объекта, при этом, не изменяя сам класс этого объекта.

Требуется для реализации:

  1. Абстрактный класс Visitor, описывающий интерфейс визитера;
  2. Класс ConcreteVisitor, реализующий конкретного визитера. Реализует методы для обхода конкретного элемента;
  3. Класс ObjectStructure, реализующий структуру(коллекцию), в которой хранятся элементы для обхода;
  4. Абстрактный класс Element, реализующий интерфейс элементов структуры;
  5. Класс ElementA, реализующий элемент структуры;
  6. Класс ElementB, реализующий элемент структуры.

[!] В описании паттерна применяются общие понятия, такие как Класс, Объект, Абстрактный класс. Применимо к языку Go, это Пользовательский Тип, Значение этого Типа и Интерфейс. Также в языке Go за место общепринятого наследования используется агрегирование и встраивание.

-- THE END --