Встречается на собеседованиях • сегодня
Что такое паттерн Observer
Паттерн Observer (Наблюдатель) — поведенческий паттерн, который создаёт механизм подписки, позволяющий одним объектам (наблюдателям) следить за изменениями другого объекта (субъекта) и реагировать на них.
Пример на TypeScript:
typescript
interface Observer {
update(data: any): void;
}
class Subject {
private observers: Observer[] = [];
subscribe(observer: Observer) {
this.observers.push(observer);
}
unsubscribe(observer: Observer) {
this.observers = this.observers.filter(obs => obs !== observer);
}
notify(data: any) {
this.observers.forEach(observer => observer.update(data));
}
}
class ConcreteObserver implements Observer {
update(data: any) {
console.log('Received data:', data);
}
}
// Использование
const subject = new Subject();
const observer = new ConcreteObserver();
subject.subscribe(observer);
subject.notify('Hello!'); // Observer получит уведомление
text
**Где применяется:**
- Реактивные системы (например, RxJS).
- Событийные модели (клик, изменение состояния).
- UI-компоненты, обновляющиеся при изменении данных.
**Плюсы:**
- Гибкая связь между объектами.
- Динамическая подписка/отписка.
**Минусы:**
- Не гарантирует порядок уведомлений.
- Риск утечек памяти, если не отписываться.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы