Visitor Pattern in Python
Изучите Visitor Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Что такое Visitor Pattern?
Изучите Visitor Pattern in Python на практическом примере, который можно изменить и запустить онлайн.
Когда это использовать?
- Решать повторяющиеся задачи объектного проектирования с помощью проверенных структур.
- Разделять обязанности, чтобы код было проще расширять и тестировать.
- Использовать общую терминологию проектирования при обсуждении архитектуры в команде.
Пример кода
main.py
class Book:
# Visitor: move new operations outside stable element classes.
def accept(self, visitor): return visitor.visit_book(self)
class Movie:
def accept(self, visitor): return visitor.visit_movie(self)
class PriceVisitor:
def visit_book(self, book): return 10
def visit_movie(self, movie): return 5
# Each element dispatches to the matching visitor method.
visitor = PriceVisitor()
print(sum(item.accept(visitor) for item in [Book(), Movie()]))
Ожидаемый результат
15
Как это работает
Этот пример демонстрирует Visitor Pattern in Python. Измените входные данные, чтобы изучить работу кода.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Практические задания
Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.
- Замените предметную область примера, сохранив структуру паттерна.
- Сравните паттерн с более простой реализацией и объясните компромиссы.
- Напишите тесты для каждого участника перед добавлением новой реализации.