@driverx18

Правильно ли я хочу использовать Observer?

Допустим, есть интернет магазин. Есть товары, каждый пользователь может "следить за товаром", допустим за его скидкой. Берем в пример товар iPhone X 128 GB. Правильно ли я понимаю, что он является Subject, и каждый человек кто нажал "следить" за ним, он становится его Observerом, и при нажатии на эту кнопку "следить" - Subject iPhone X делает attach этого Observer (пользователя)? В случае, если я правильно понял, то где нам хранить этих обсерверов, в базе? Отдельная таблица продукта к его обсерверам? И потом когда в админке менеджер меняет цену данного товара, то мы делаем notify() сабджекта, (под капотом - выбираем из базы всех обсерверов этого продукта и делаем им нотификейт, например, отписываем, на почту о изменненой цене)

Вопрос: правильно ли я всё понял, или это делается вообще не так? В основном вопрос, где хранить всех обсерверов, очевидно же в базе?
  • Вопрос задан
  • 114 просмотров
Пригласить эксперта
Ответы на вопрос 2
Eridani
@Eridani
Мимо проходил
Да, в отдельной таблице будем держать ид товара, ид или э мейл того, кто следит, ну и другие служебные поля по необходимости.
Ну и, верно, нам нужны события смены, которые будут вызывать процесс оповещения после смены цен и т.п., по сути, действия после изменения объекта
Ответ написан
Комментировать
@Mysterion
Все верно. Observer - это наблюдатель. Он следит за чем-то и получает оперативные уведомления об изменении состояния субъекта. А как он получает уведомления и как это реализовано у Вас - это уже Ваше дело.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы