Что такое паттерн 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, серверные системы)
- Реактивное программирование
- Развязка компонентов системы
Паттерн обеспечивает слабую связанность между субъектом и наблюдателями.