Сообщество RSS DEV

Шаблоны проектирования #12: Дайте посетителю войти — Глубокое погружение в шаблон Посетитель.

Шаблон Посетитель отделяет алгоритмы от структур объектов, позволяя выполнять операции над сложными иерархиями классов без их модификации. Обычный пример файловой системы включает создание базовых и конкретных классов файлов/папок, каждый из которых содержит методы размера и отчета. Этот подход сложно масштабировать, требуя изменений в каждом классе для новых действий. Шаблон Посетитель определяет интерфейсы для элементов файловой системы и посетителей, делегируя действия конкретным реализациям посетителей. Элементы файловой системы принимают посетителей, которые обрабатывают конкретные операции, такие как расчет размера и отчетность. Этот подход повышает масштабируемость, поскольку новые действия добавляются как новые посетители без изменения основных классов. Дизайн посетителя включает построение иерархии дерева, а затем применение конкретных посетителей для действий, таких как генерация отчетов о файлах и расчет общего размера. Использование посетителей позволяет добавлять действия, создавая новые классы. Традиционный подход требует изменения существующих классов, когда необходимы новые действия. Шаблон Посетитель способствует более чистому разделению задач.
favicon
dev.to
Design Patterns #12: Let the Visitor In — A Deep Dive into the Visitor Pattern.
Изображение к статье: Шаблоны проектирования #12: Дайте посетителю войти — Глубокое погружение в шаблон Посетитель.
Create attached notes ...