Re[3]: Паттерн типа "Связь с контейнером"
От: GlebZ Россия  
Дата: 18.03.05 17:03
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Здравствуйте, GlebZ, Вы писали:


ЗХ>>>Который раз натыкаюсь на такую ситуевину:

ЗХ>>>* есть некий объект test_object
ЗХ>>>* есть контейнер с такими объектами — test_container
ЗХ>>>* обо всех изменениях test_container и хранящихся в нем test_object надо предупредить некий внешний класс (observer).
ЗХ>>>* кого предупреждать, знает test_container (хранит ссылку/указатель на observer)

ЗХ>>>внимание, вопрос: как это изящно реализовать?

ЗХ>>>точнее, можно ли сделать что-то изящнее, чем в каждом test_object хранить ссылку/указатель на test_container или observer?

ЗХ>>>ЗЫ: Язык — С++.

GZ>>И при этом ни тот ни другой не может быть сингтоном?

ЗХ>Хиииитренький! Неа, не может.

Ну так сделай подобный singleton, обзови его, например, EventManager — и регистрируй на нем получателей сообщений. Изящней, или нет я не скажу, но я так делал (правда по другим причинам). Вариант, когда объекты связаны в дерево и по этому дереву можно было бегать, мне всегда больше нравился.
С уважением, Gleb.
PS: кажется на сайте Фаулера я видел подобные паттерны — здесь. Ессно с некоторым уклоном в Java и C#.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.