Встречается на собеседованиях • сегодня

Что такое Observer

Observer — это поведенческий паттерн проектирования, который создаёт механизм подписки, позволяющий одним объектам (наблюдателям) следить и реагировать на изменения в другом объекте (субъекте).

Пример:

javascript
class Subject {
  constructor() {
    this.observers = [];
  }

  subscribe(observer) {
    this.observers.push(observer);
  }

unsubscribe(observer) {
this.observers = this.observers.filter(obs => obs !== observer);
}

notify(data) {
this.observers.forEach(observer => observer.update(data));
}
}

class Observer {
update(data) {
console.log('Получены данные:', data);
}
}

const subject = new Subject();
const observer = new Observer();

subject.subscribe(observer);
subject.notify('Новое событие!'); // Выведет: "Получены данные: Новое событие!"

text

**Используется:**  
- Реактивные системы (например, Vue, React)  
- Событийные модели (например, DOM Events)  
- Pub/Sub системы  

Плюсы:  
- Гибкость (легко добавлять/удалять наблюдателей)  
- Снижение связанности (субъект не знает детали наблюдателей)  

Минусы:  
- Неожиданные обновления (если цепочка вызовов сложная)  
- Потенциальные утечки памяти (если не отписаться)
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы