Skip to content

Files

Latest commit

37c0cd1 · Dec 16, 2018

History

History

Visitor

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Feb 12, 2016
Dec 15, 2018
Dec 16, 2018

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

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

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

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

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

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

-- THE END --