Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обсуждение шаблонов проектирования (стереотипы), связь между кодом C++ и проектированием 
:(
    Опции темы
Леопольд
Дата 25.6.2009, 06:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(mes @ 24.6.2009,  21:55)
Про абстрактную фабрику имхо нечего филосоствовать, так как она неимеет собственной сущности, а представлена обобщением двух других паттернов : Фабрика и Интерфейс.

Вот теперь мне кажется что мы её "разобрали"... Возьмёмся за "наблюдателя"? smile

Это сообщение отредактировал(а) Леопольд - 25.6.2009, 10:59


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
mes
Дата 25.6.2009, 10:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Леопольд @  25.6.2009,  05:33 Найти цитируемый пост)
Возьмёмся за "наблюдателя"? 

Патерн Наблюдатель с технической точки зрения это  разновидность регистрации  делегируемого интерфейса для установления обратной связи,
при которой полагается, что наблюдаемый не зависит от реакции наблюдателя, т.е интерфейс не возвращает (прямо или косвенно) результат вызова.











--------------------
PM MAIL WWW   Вверх
Леопольд
Дата 25.6.2009, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(mes @ 25.6.2009,  10:50)
наблюдаемый не зависит от реакции наблюдателя

Но наблюдатели зависят от наблюдаемого, что логично... Следовательно, это позволяет при изменениях некоего объекта (наблюдаемого) как-то реагировать всем зарегестрированным наблюдателям, например, синхронизировать состояния. Думаю можно "подписаться" на разные события. Насколько мне известно, этот паттерн часто используют в GUI библиотеках для обработки различных ивентов. Что-то ещё он может?


Это сообщение отредактировал(а) Леопольд - 25.6.2009, 11:38


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
mes
Дата 25.6.2009, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Леопольд @  25.6.2009,  09:58 Найти цитируемый пост)
Что-то ещё он может?

Наблюдатель может только наблюдать и подписываться (сам или кем то) на наблюдения (и соответсвенно отписываться от них). Остальное выходит за рамки наблюдателя smile






--------------------
PM MAIL WWW   Вверх
Леопольд
Дата 25.6.2009, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(mes @ 25.6.2009,  11:37)
Цитата(Леопольд @  25.6.2009,  09:58 Найти цитируемый пост)
Что-то ещё он может?

Наблюдатель может только наблюдать и подписываться (сам или кем то) на наблюдения (и соответсвенно отписываться от них). Остальное выходит за рамки наблюдателя smile

В общем, "правильнее" было бы назвать этот паттерн "прирождённый стукач", потому что он больше ничего не может smile
Получается он бесполезен сам по себе. Но в совокупности с другими паттернами он явно может принести пользу. Я например вижу что можно с его помощью оповещать всех подписчиков наблюдателя об изменении наблюдаемого.  Т.е. наблюдатель + делегат (или прокси). Какие-то ещё комбинации?


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
mes
Дата 25.6.2009, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 144
Всего: 250



Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
Получается он бесполезен сам по себе.

не получается. smile 
Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
было бы назвать этот паттерн "прирождённый стукач",

суть не в том что один объект сообщает о своем состоянии, а в том что другой может получить эти сообщения.

Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
 потому что он больше ничего не может smile

Объект наблюдатель может все что ему захочется, но эти действия не подпадают под паттерн наблюдатель.

Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
например вижу что можно с его помощью оповещать всех подписчиков наблюдателя об изменении наблюдаемого

наблюдатель (объект, а не паттерн) и является подписчиком. smile

Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
Т.е. наблюдатель + делегат (или прокси).

делегат  фактически является подпатерном  наблюдателя. Точнее сказать паттерн наблюдатель описывает одно из применений делегатов.

Цитата(Леопольд @  25.6.2009,  16:12 Найти цитируемый пост)
 Т.е. наблюдатель + делегат (или прокси). 

Прокси прямого отношения к рассматриваемому патерну не имеет.

Это сообщение отредактировал(а) mes - 25.6.2009, 17:30


--------------------
PM MAIL WWW   Вверх
Леопольд
Дата 25.6.2009, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Предлагаю приложить его к игре с героями.

Предположим в игре есть ресурсы, за счёт которых можно производить новых героев. Предположим, что эти ресурсы представляют из себя класс. Количество ресурсов можно увеличивать. Также имеются фабрики(а) героев. Есть заданная пользователем очередь "создания" героев. Разумно ли применить паттерн "наблюдатель" для того что-бы оповещать очередь создания о том что ресурсов достаточно для создания следующего в очереди героя? 

Это сообщение отредактировал(а) Леопольд - 28.6.2009, 22:45


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0684 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.