Observer pattern определяет зависимость один-ко-многим между объектами. Когда subject (также называемый publisher) изменяет своё состояние, все зарегистрированные observers (subscribers) автоматически получают уведомление и обновляются.
Этот паттерн встречается повсеместно в современной разработке на JavaScript:
addEventListener)Объект subject должен поддерживать список подписчиков и предоставлять три основных метода:
subscribe(observer) — добавляет observer в списокunsubscribe(observer) — удаляет observer из спискаnotify() — вызывает каждого observer при изменении состоянияconst subject = {
observers: [],
subscribe(fn) { this.observers.push(fn); },
unsubscribe(fn) { this.observers = this.observers.filter(o => o !== fn); },
notify(data) { this.observers.forEach(fn => fn(data)); }
};
Observer pattern способствует слабой связанности — subject не должен знать кто его observers, только что они существуют. Это делает кодовую базу более масштабируемой и поддерживаемой, так как observers можно добавлять или удалять без изменения самого subject.
Паттерн Observer устанавливает отношение один-ко-многим, при котором субъект ведёт список наблюдателей и уведомляет всех их при изменении своего состояния.
Новый — ещё не проверен сообществом
Вы