Ответ
В проекте интернет-магазина использовал Observer для управления состоянием корзины. При добавлении товара корзина уведомляла все подписанные компоненты (список товаров, мини-корзину, счетчик) о изменениях.
class Cart {
constructor() {
this.subscribers = [];
this.items = [];
}
subscribe(callback) {
this.subscribers.push(callback);
}
addItem(item) {
this.items.push(item);
this.notify();
}
notify() {
this.subscribers.forEach(cb => cb(this.items));
}
}
// Использование
const cart = new Cart();
cart.subscribe(items => console.log('Items updated:', items));
cart.addItem({id: 1, name: 'Phone'}); // Логирует обновление