Приведи пример проекта где использовал шаблон проектирования

Ответ

В проекте интернет-магазина использовал 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'}); // Логирует обновление