Паттерны проектирования Python

Observer Pattern in Python

Изучите Observer Pattern in Python на практическом примере, который можно изменить и запустить онлайн.

Что такое Observer Pattern?

Изучите Observer Pattern in Python на практическом примере, который можно изменить и запустить онлайн.

Когда это использовать?

  • Решать повторяющиеся задачи объектного проектирования с помощью проверенных структур.
  • Разделять обязанности, чтобы код было проще расширять и тестировать.
  • Использовать общую терминологию проектирования при обсуждении архитектуры в команде.

Пример кода

Запустить код →
main.py
class Order:
    # Observer: publish changes to an open-ended subscriber list.
    def __init__(self): self.listeners = []
    def subscribe(self, listener): self.listeners.append(listener)

    def set_status(self, status):
        # Broadcast the change to all current observers.
        for listener in self.listeners:
            listener(status)


order = Order()
order.subscribe(lambda status: print(f"Email received: {status}"))
order.set_status("shipped")

Ожидаемый результат

Email received: shipped

Как это работает

Этот пример демонстрирует Observer Pattern in Python. Измените входные данные, чтобы изучить работу кода.

Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.

Практические задания

Изменяйте входные данные и проверяйте граничные случаи перед работой с большими наборами.

  1. Замените предметную область примера, сохранив структуру паттерна.
  2. Сравните паттерн с более простой реализацией и объясните компромиссы.
  3. Напишите тесты для каждого участника перед добавлением новой реализации.
Запустить в Python IDE →