Добрый день.
В книге Приемы объектно-ориентированного проектирования. Паттерны проектирования от Банды четырех в главе о Наблюдателе обсуждается так называемый менеджер изменений (ChangeManager), применяемый для инкапсуляции сложной семантики обновления. А также реализация основанная на ациклическом направленном графе зависимостей между субъектами и их наблюдателями (DAGChangeManager).
0) В начале описания менеджера изменений пишется, что если некоторая операция влечет за собой изменения в нескольких независимых субъектах, то нужно, чтобы наблюдатели уведомлялись после того, как будут модифицированы ВСЕ субъекты, дабы не уведомлять одного и того же наблюдателя несколько раз. Почему именно так? Ведь если субъекты независимы, то логично при изменениях в некотором субъекте СРАЗУ уведомить соответствующих наблюдателей. И почему тут говорится НЕ УВЕДОМЛЯТЬ НЕСКОЛЬКО РАЗ ? Ведь за один вызов уведомляющей функции наблюдателю передается информация об изменении одного субъекта, соответственно, для того, чтобы уведомить его об изменениях в нескольких субъектах, нужно вызвать уведомляющую функцию, соответствующую каждому субъекту. Соответственно в любом случае будет столько вызовов уведомляющей функции, сколько субъектов изменилось для каждого наблюдателя.
1) В описании говорится, что если у одного наблюдателя несколько субъектов, то плохо, когда изменения сразу у нескольких субъектов, ведь тогда наблюдатель получит избыток уведомлений. Но почему избыток? Ведь логично, что от каждого субъекта будет по одному уведомлению для каждого субъекта? И далее пишется, что DAGChangeManager гарантирует, что наблюдатель получит только одно уведомление. Опять-таки какого хрена? Ведь нужно, чтобы наблюдатель получил уведомление от каждого субъекта, у которого зарегистрирован.
2) Можете более подробно описать работу DAGChangeManager?
Ответ на:
комментарий
от anonymous
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум количество наблюдателей (2017)
- Форум Записки наблюдателя. (2011)
- Форум Паттерны. (2013)
- Форум [glm] Положение наблюдателя (2012)
- Форум Паттерн интерпретатор (2007)
- Форум Паттерн класса (2007)
- Форум Паттерн очереди (2005)
- Форум Паттерн стратегия ужасен? (2014)
- Форум А посоветуйте паттерн (2013)
- Форум Модные молодежные паттерны (2012)