Russian Qt Forum
Ноябрь 24, 2024, 00:48
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Кладовая готовых решений
(Модератор:
Пантер
) >
Вопрос по архитектуре приложения. Медиатор
Страниц:
1
...
3
4
[
5
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Вопрос по архитектуре приложения. Медиатор (Прочитано 35581 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Вопрос по архитектуре приложения
«
Ответ #60 :
Июнь 08, 2012, 20:44 »
Цитата: nata267 от Июнь 08, 2012, 19:55
Мне кажется пример с кнопками и метками не совсем жизненный, и в принципе задача довольно простая чтобы с ней заморачиваться.
Ну простой - да, а в жизненности ему не откажешь.
Цитата: nata267 от Июнь 08, 2012, 19:55
Я предложила данное решение для задачи: Как организовать взаимодействие компонентов сложной системы, не
связывая их напрямую друг с другом. То есть получить систему разбитую на модули но со слабой связностью. Может быть существуют и другие более красивые решения данной проблемы??
Паттерн - это (типовой) прием(чик), поэтому не надо ожидать от него решения глобальных задач. В сложных случаях разрабатывается/утверждается "интерфейс" каждого модуля, т.е. что он должен знать и чего не должен. Это часто становится предметом жарких споров. За каждую "слабосвязность" (гибкость) приходится платить промежуточными классами которые часто оказываются под ударом. Некоторые верят что есть чудесный способ (я нет). Напр манечка "импорт/запрос интерфейса" загубила не один проект..
Цитата: alexis031182 от Июнь 08, 2012, 19:09
Так решение о применении каждого конкретного паттерна должно основываться, исходя из условий задачи. А Вы уже ведёте речь о повсеместном применении. Паттерн медиатора, о котором эта тема, сам по себе не предполагает собственное использование со всеми подряд QPushButton'ами и т.п., но лишь в том случае, когда сгруппированный функционал взаимодействия между объектами классов рационально вынести в посредника. Другими словами, если мы и определили класс-наследник для некоторых QPushButton, то это не значит, что всех подряд надо гнать под одну гребёнку. Я думаю так.
Я не вижу никакой ошибки в Ваших рассуждениях, но налицо разрыв слова и дела (не у Вас лично, а вообще в теме). Пока "взагалi" - все чудесно, и ссылки сыпятся, и на пальцах запросто и.т.п. Но вот доходит до кода (маленького) - и куда что девается.. То класс явно притянутый за уши, то вообще "ах это не тот паттерн", зачем нужно и где выигрыш/резон того же медиатора - ни одного внятного примера
Цитата: DmitryM от Июнь 08, 2012, 20:17
И пошел поток бреда:
Дмитрий, чем больше Вы хамите, тем яснее всем что своих мыслей у Вас нет, а попытки скрыть это кучей прочитанного (но никак не осмысленного) выглядят убого. Впредь отвечать Вам просто не буду, нет смысла тратить время на хамло
Записан
nata267
Гость
Re: Вопрос по архитектуре приложения
«
Ответ #61 :
Июнь 08, 2012, 20:53 »
Цитата: m_ax от Июнь 08, 2012, 20:43
Не, я бы всё же назвал тему как то так: К вопросу о паттерне Медиатор, или О особенностях использования Медиатора или...
А так название темы совсем не пойми о чём.. В смысле не отражает суть вопроса, имхо(
Наталья, не слушайте Вы никого, кто говорит, что это захламит ваш чердак и потом найти нужную вещь будет нереально.. Это всё бред) Холмс имел в виду совсем другое) Очень хорошо, что вы интересуетесь и изучаете паттерны, ищите, блуждаете.. Всё это во благо) Кто ищет - вынужден блуждать)
ЗЫ
А если кто-то будет наезжать здесь, скажите, что Вы человек Макса))
)) пока никто особо не наезжал, хотя вначале ожидала много критики
Записан
alexis031182
Гость
Re: Вопрос по архитектуре приложения
«
Ответ #62 :
Июнь 08, 2012, 20:54 »
Цитата: m_ax от Июнь 08, 2012, 20:43
...
ЗЫ
А если кто-то будет наезжать здесь, скажите, что Вы человек Макса))
Тогда уж лучше "от Макса"
У входа в гостиницу:
- Эй, мужики, вы куда?! Вам сюда нельзя.
- Мы от Саныча.
- Какого такого Саныча?
- Ты чё, Саныча не знаешь?
- Нет... Проходите.
Записан
alexis031182
Гость
Re: Вопрос по архитектуре приложения
«
Ответ #63 :
Июнь 08, 2012, 21:01 »
Цитата: nata267 от Июнь 08, 2012, 20:53
)) пока никто особо не наезжал, хотя вначале ожидала много критики
Самим бы разобраться прежде чем начинать критиковать
Записан
alexis031182
Гость
Re: Вопрос по архитектуре приложения
«
Ответ #64 :
Июнь 08, 2012, 21:12 »
Цитата: Igors от Июнь 08, 2012, 20:44
Я не вижу никакой ошибки в Ваших рассуждениях, но налицо разрыв слова и дела (не у Вас лично, а вообще в теме). Пока "взагалi" - все чудесно, и ссылки сыпятся, и на пальцах запросто и.т.п. Но вот доходит до кода (маленького) - и куда что девается.. То класс явно притянутый за уши, то вообще "ах это не тот паттерн", зачем нужно и где выигрыш/резон того же медиатора - ни одного внятного примера
Честно говоря, пришлось задуматься над Вашими словами по поводу нерациональности наследования от того же QPushButton. Спустя время, дошло, что можно вместо наследования применить обратный метод - декорирование. То есть, обслуживаемый класс помещаем в некий класс Декоратор, в котором и будет содержаться указатель на медиатор и указатель на обслуживаемый объект. Думаю, это должно помочь решить возникшую проблему.
Цитата: Igors от Июнь 08, 2012, 20:44
Цитата: DmitryM от Июнь 08, 2012, 20:17
И пошел поток бреда:
Дмитрий, чем больше Вы хамите, тем яснее всем что своих мыслей у Вас нет, а попытки скрыть это кучей прочитанного (но никак не осмысленного) выглядят убого. Впредь отвечать Вам просто не буду, нет смысла тратить время на хамло
Умение корректно "задавить" оппонента в споре уважается несколько больше. На иные методы - другие реверансы. Да просто как-то ни к чему такое...
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Вопрос по архитектуре приложения
«
Ответ #65 :
Июнь 08, 2012, 21:26 »
Цитата: m_ax от Июнь 08, 2012, 20:43
Наталья, не слушайте Вы никого, кто говорит, что это захламит ваш чердак и потом найти нужную вещь будет нереально.. Это всё бред) Холмс имел в виду совсем другое) Очень хорошо, что вы интересуетесь и изучаете паттерны, ищите, блуждаете.. Всё это во благо) Кто ищет - вынужден блуждать)
А Вы тут из себя не разыгрывайте старичка (отдыхающего на завалинке) а активно подключайтесь
Цитата: alexis031182 от Июнь 08, 2012, 21:12
Честно говоря, пришлось задуматься над Вашими словами по поводу нерациональности наследования от того же QPushButton. Спустя время, дошло, что можно вместо наследования применить обратный метод - декорирование. То есть, обслуживаемый класс помещаем в некий класс Декоратор, в котором и будет содержаться указатель на медиатор и указатель на обслуживаемый объект. Думаю, это должно помочь решить возникшую проблему.
Я не вижу зачем нужен этот указатель. Если "с контролом что-то случилось" - везде родитель получит управление (через сигналы или как - детали). Также не вижу ничего против обработки (содержательных действий) в окне-родителе. Оно ведь все контролы и создавало, ну ему и карты в руки
Записан
alexis031182
Гость
Re: Вопрос по архитектуре приложения
«
Ответ #66 :
Июнь 08, 2012, 21:48 »
Цитата: Igors от Июнь 08, 2012, 21:26
Я не вижу зачем нужен этот указатель. Если "с контролом что-то случилось" - везде родитель получит управление (через сигналы или как - детали). Также не вижу ничего против обработки (содержательных действий) в окне-родителе. Оно ведь все контролы и создавало, ну ему и карты в руки
Да нет, Ваше решение отличное, применительно к обсуждаемому нами маленькому примеру. Но я всё размышляю в сторону своего проекта вебсервера. Когда я к epoll-событиям подключил сигнал-слоты и QEvent, программа стала работать значительно медленнее. Пробовал по всякому извращаться, но скорости не прибавилось. Поэтому я задумался о решении, которое на уровне затрат обычного вызова функции позволит столь же гибко управлять всеми процессами взаимосвязанных объектов, как это сделано в случае событийной модели Qt.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Вопрос по архитектуре приложения
«
Ответ #67 :
Июнь 08, 2012, 22:21 »
Цитата: Igors от Июнь 08, 2012, 21:26
Цитата: m_ax от Июнь 08, 2012, 20:43
Наталья, не слушайте Вы никого, кто говорит, что это захламит ваш чердак и потом найти нужную вещь будет нереально.. Это всё бред) Холмс имел в виду совсем другое) Очень хорошо, что вы интересуетесь и изучаете паттерны, ищите, блуждаете.. Всё это во благо) Кто ищет - вынужден блуждать)
А Вы тут из себя не разыгрывайте старичка (отдыхающего на завалинке) а активно подключайтесь
Нет, я пообещал себе особо не вмешиваться.. У меня сейчас типа творческий кризис..((
Но про паттерн Медиатр я почитал.. И, кстатии, мне кажется вы его тож неявно использовали.. (когда-то)
Я сам его мыслил использовать, когда подумывал о написании одной модели (аналога QGrapicsScene/Model).. А потом подумал: да нафига мне это...
Моя мысль в том, что паттерны прогр. - всё же, не на пустом месте придумали) И, наверное, всё же есть смысл, перед тем как воять свой велосипед, посмотреть, как же уже другие решали подобные проблемс)
Что в этом преступного?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Вопрос по архитектуре приложения
«
Ответ #68 :
Июнь 08, 2012, 22:39 »
Кстати, BRE куда то пропал.. Давно его уже не видно и не слышно..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Вопрос по архитектуре приложения
«
Ответ #69 :
Июнь 09, 2012, 01:20 »
Цитата: m_ax от Июнь 08, 2012, 22:21
И, кстатии, мне кажется вы его тож неявно использовали.. (когда-то)
Если Вы имеете ввиду старую тему "переходничок", то это наверное "adapter" - хотя знаток паттернов из меня никакой
Цитата: m_ax от Июнь 08, 2012, 22:21
Моя мысль в том, что паттерны прогр. - всё же, не на пустом месте придумали) И, наверное, всё же есть смысл, перед тем как воять свой велосипед, посмотреть, как же уже другие решали подобные проблемс)
Что в этом преступного?
Так вот и смотрим - но это не значит "понимаем". А тупенько копировать - не всем хочется
Цитата: nata267 от Июнь 08, 2012, 20:19
Для того наверно чтобы все время не создавать объект QSettings для каждого окна, а чтобы делать это централизовано. В менеджере настроек сразу определяется куда будут записываться настройки, а также происходит инициализация объекта QSettings:
m_settings(qApp->organizationName(), qApp->applicationName())
Кроме того мы сможем менять поведение менеджера на специфичесое для данного проекта.
Хмм... ну может и так, не исключено. Однако такой подход предвзятен, мы как бы "подгоняем задачу под паттерн" - а должно быть наоборот.
Записан
Страниц:
1
...
3
4
[
5
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...