Паттерн «Наблюдатель»
Событийное мышление: реагируем на изменения, а не опрашиваем бесконечно.
Hook
Observer-блок в Minecraft ловит изменение рядом и сразу даёт сигнал. Он не «проверяет каждую миллисекунду».
Concept
Термины: list, dictionary, loop, function — пишем по-английски, объясняем по-русски.
Паттерн «Наблюдатель» связывает источник события и подписчиков.
Источник: «изменилось состояние двери».
Подписчики: лампа, сирена, логгер.
В коде это часто функции-обработчики (callbacks):
- подписаться на событие;
- получить уведомление;
- выполнить действие.
Практика
Задание 1: впиши название события и обработчик.
events = {}
events["door_open"] = "on_door_open"
print(events)
Заполни пропуски в коде в своей тетради/редакторе. Ключевые ответы: door_open/on_door_open.
Задание 2: допиши ключ события тревоги.
handlers = {"alarm": "send_message"}
print(handlers["alarm"])
Проверь себя: alarm.
Сборка: мини-проект
Спроектируй мини-систему умного дома: события door_open, motion_detected, fire_alert и по 2 подписчика на каждое.
Комбинируем текущую тему с предыдущими навыками.
Reflection
Ты освоил реактивный подход: система отвечает на события по мере их появления. Так работают UI, чат-боты и игровые триггеры.