Что такое паттерн "Наблюдатель" (Observer) и где он используется?
Уровень: Senior
Ответ
Паттерн \"Наблюдатель\" – это шаблон проектирования, при котором один объект (\"издатель\" или \"субъект\") поддерживает список других объектов (\"наблюдателей\") и автоматически уведомляет их об изменениях состояния, вызывая определённый метод. В JavaScript данный паттерн проявляется, например, в DOM-событиях: элемент (издатель) при наступлении события вызывает все подписанные обработчики (наблюдатели). Другой пример – реализация EventEmitter в Node.js (объект, позволяющий подписаться на события и эмитить их). Паттерн Observer широко используется для реализации системы событий, реактивных интерфейсов (в фреймворках), и в архитектуре \"publish-subscribe\" (издатель/подписчик), где подписчики получают уведомления о происходящих в издателе событиях.