Что такое паттерн Observer

Python Senior Без компании
Что такое паттерн Observer
Ответы
Паттерн Observer (Наблюдатель) — это поведенческий паттерн, который определяет зависимость "один-ко-многим" между объектами. Когда один объект (субъект) изменяет своё состояние, все зависимые объекты (наблюдатели) автоматически уведомляются и обновляются. **Пример на Python:** ``` class Subject: def __init__(self): self._observers = [] def attach(self, observer): self._observers.append(observer) def detach(self, observer): self._observers.remove(observer) def notify(self, message): for observer in self._observers: observer.update(message) class Observer: def update(self, message): print(f"Received: {message}") subject = Subject() observer1 = Observer() observer2 = Observer() subject.attach(observer1) subject.attach(observer2) subject.notify("Hello Observers!") ``` **Применение:** - Уведомления о событиях (GUI, серверные системы) - Реактивное программирование - Развязка компонентов системы Паттерн обеспечивает слабую связанность между субъектом и наблюдателями.