Mols
Новичок
Доброго времени суток)
Возникла у меня задачка навроде обработки событий.
Имеется иерархическая структура. Например:
1. Раздел (например промтовары)
1.1 Категория (например спорт)
1.1.1 Тип товаров (кроссовки)
1.1.1.1 Кроссовки марки Puma
1.1.1.1.1 Модель "Супер"
Допустим для кроссовок "Супер" - меняется цена или добавляется отзыв (в общем производится некое действие).
Как правильно сообщить об этом заинтересованным объектам?
Например надо:
1. установить значение в "время_последних_ изменений" для 1.1.1 Тип товаров (кроссовки) или любого другого (в общем для произвольного "родителя" и для произвольного их числа)
2. разослать письма всем, кто подписался "следить за изменениями цен Модели "Супер""
3. Ещё что угодно
На первый взгляд можно использовать паттерн "Наблюдатель".
Но насколько я понял, самое интересное в "Наблюдатель" это то, что заинтересованные объекты сами подписываются на отслеживание событий.
В моём случае при изменении цены мы имеем доступ только к сущности с данными о 1.1.1.1.1 Модель "Супер". Все кто выше - не создаются, соответственно не подписываются на сообщения.
То есть объекты, заинтересованные в получении данных о изменении, надо создать "ручками" в контроллере или делать некий диспетчер, который будет ловить такое событие и создавать все объекты там (в диспетчере).
Создавать ручками, вроде не очень гуд - структура произвольной вложенности. Кроме того, например рассыльщик оповещений вообще не является частью структуры товаров.
Пихать в диспетчер... это уже вроде не совсем "Наблюдатель"...
Кто решал подобную задачу (или видит грамотное решение), поделитесь мнением пожалуйста..
Возникла у меня задачка навроде обработки событий.
Имеется иерархическая структура. Например:
1. Раздел (например промтовары)
1.1 Категория (например спорт)
1.1.1 Тип товаров (кроссовки)
1.1.1.1 Кроссовки марки Puma
1.1.1.1.1 Модель "Супер"
Допустим для кроссовок "Супер" - меняется цена или добавляется отзыв (в общем производится некое действие).
Как правильно сообщить об этом заинтересованным объектам?
Например надо:
1. установить значение в "время_последних_ изменений" для 1.1.1 Тип товаров (кроссовки) или любого другого (в общем для произвольного "родителя" и для произвольного их числа)
2. разослать письма всем, кто подписался "следить за изменениями цен Модели "Супер""
3. Ещё что угодно
На первый взгляд можно использовать паттерн "Наблюдатель".
Но насколько я понял, самое интересное в "Наблюдатель" это то, что заинтересованные объекты сами подписываются на отслеживание событий.
В моём случае при изменении цены мы имеем доступ только к сущности с данными о 1.1.1.1.1 Модель "Супер". Все кто выше - не создаются, соответственно не подписываются на сообщения.
То есть объекты, заинтересованные в получении данных о изменении, надо создать "ручками" в контроллере или делать некий диспетчер, который будет ловить такое событие и создавать все объекты там (в диспетчере).
Создавать ручками, вроде не очень гуд - структура произвольной вложенности. Кроме того, например рассыльщик оповещений вообще не является частью структуры товаров.
Пихать в диспетчер... это уже вроде не совсем "Наблюдатель"...
Кто решал подобную задачу (или видит грамотное решение), поделитесь мнением пожалуйста..