Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76

Как вы используете паттерн Observer?

19.08.2015, 15:26. Показов 727. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я изучил этот паттерн и использовал его в своей программе. У меня класс Контроллер является Наблюдателем и создаёт observable объекты, которые создают другие объекты и многим передаётся ссылка на этот класс.
Так как у пары классов более двух вариантов взаимодействия, я создал enum с командами для контроллера, по названиям которых можно понять, какой класс вызывает update и что нужно с ним сделать. Таким образом для передачи информации контроллеру нужно вызвать notifyObservers() с подходящей командой и контроллер в switch'е её обработает.
В целом, получилось вполне читабельно и удобно, но адекватный ли этот способ использования данного паттерна? Может есть более подходящий шаблон? Как вы его использовали в своих программах?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.08.2015, 15:26
Ответы с готовыми решениями:

Как реализовать Observer паттерн
Необходимо реализовать Observer паттерн. Реализация через public void Publish<TEvent>(TEvent publishEvent); public void...

паттерн Observer
Гуру программирования, просветите по данному сабжу (расскажите человеческим языком/направьте ссылками), очень интересно:) p.s. ...

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

3
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.08.2015, 21:59
Bochkarev, у вас на много ивентов по-сути один обработчик. Попробуйте разделить события и на каждое событие (или группу событий) повесить свой метод-обработчик. Таким образом код будет более читабелен и менее связанным.
0
7 / 7 / 3
Регистрация: 19.08.2015
Сообщений: 76
19.08.2015, 22:15  [ТС]
KEKCoGEN, дело в том, что я использую паттерн MVC и все команды, что посылаются на контроллер, требуют взаимодействия с моделью или представлением, так что я лишь разделил контроллер на две части, одна из которых обрабатывает события от кнопок в представлении, а вторая является наблюдателем и принимает эти самые команды в виде (СОКРАЩЕННОЕ_НАЗВАНИЕ_ВЫЗЫВАЮЩЕГО_КЛАССА )_КОМАНДА.
Всё, что не требует участия модели и представления, взаимодействует уже без участия контроллера.
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
20.08.2015, 14:00
Что за программа: веб или гуй? Может код покажешь или более подробно опишешь что и как взаимодействует? Я, например, вообще не понял из твоего описания, что в программе творится. Но совет KEKCoGEN-а поддерживаю.

Одно только
Цитата Сообщение от Bochkarev Посмотреть сообщение
контроллер в switch'е
намекает на неправильное применение Observer.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.08.2015, 14:00
Помогаю со студенческими работами здесь

паттерн наблюдатель (observer)
Помогите разобраться. Нашел в интернете несколько примеров но по ним я не могу понять как они работают, приведите пример. Если есть пример...

паттерн Observer(непонятна строка кода)
Непонятный код в одном месте. Хотелось бы узнать смысл и для чего его тут написали. class Subject { // 1....

паттерн Observer(непонятна строка кода)
Непонятный код в одном месте. Хотелось бы узнать смысл и для чего его тут написали. class Subject { // 1....

Почему паттерн абстрактная фабрика - паттерн уровня объектов, если в нём могут быть статические отношения?
Взято из Шевчук А., Охрименко Д., Касьянов А. Design Patterns via C#. Приемы объектно-ориентированного проектирования (2015): Почему...

<area> и <map>! как часто используете?
О таких тегах как &lt;area&gt; и &lt;map&gt; знаю давно, но по неизвестным даже мне причинам я ими ни разу не воспользовался... Не знаю почему! ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru