![]() |
|
||||||||||
|
|||||
|
[+1 25.10.13]
[+4 18.03.14] |
Я не использую понятие медиатор, у меня вью это иерархическая структура, состоящая из контейнеров, которые заполняются виджетами. Виджет ничем не заполняется - это терминальный визуальный элемент
Команда формирует XPath запрос, который вырезает нужную структуру из иерархии видов. Для этого нужен XML. |
|
|||||
|
Это по научному так называют "конечный".
Цитата:
Но зачем тащить с собой XML? Чтобы перевозить апельсины нужна ёмкость – бочки?
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Иерархию, конечно, можно и на Обжектах строить)) Однако у них то нет такой плюшки как XPath/e4x.
__________________
Reality.getBounds(this); |
|
|||||
|
Ябпосмотрел.
А то смущает меня прозрачная вью, вывернутая наизнанку по отношению к системе. Но, в целом, теперь понятно что такое XML-MVC. Если еще и модели зеркальное дерево имеют - то вполне удобно должно быть. Добавлено через 12 минут А, ну да. Еще и новое слово выучил Цитата:
![]() В них всесторонне развиваешься ![]()
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Dukobpa3, а можно поконкретней про медиаторы?))
"для всей системы Вью это медиатор" — для какой системы? Для кучки растерявшихся контроллеров? Можно ли [выдумать] какой-то простой пример, типа "есть два таких-то Вью, есть два контроллера. И вот возникает такая ситуация /*описание ситуации*/. Тогда мы вводим медиатор, который регистрирует контроллеры и вьюхи, и /*описание действий медиатора*/. Желательно, чтоб было понятно не только мне, но и другим всесторонне развивающимся))
__________________
Reality.getBounds(this); |
|
|||||
|
Цитата:
Некий уровень абстракции, на котором нам не интересна конкретная кнопка во вью, или конкретный чекер в модели. На этом уровне абстракции нам больше интересны модули вцелом и их апи, которым они повернуты друг к другу. Можем принять что модули, с этой точки зрения - набор одноуровневых блоков (моделей, контроллеров, вью). А про медиаторы я тут только что много чего-то написал, но так написал что и сам бы не понял. Решил не отправлять. Я подумаю как сформулировать и позже повторный заход сделаю. Добавлено через 22 минуты А вообще меня уже конкретно припарил мвц. Изначально мне нравилось потому что у меня были контроллеры, которые инитят свои модели и свои вьюхи. Получалось модуль - это по сути контроллер, а что там внутри него - уже мало кого волнует, он там сам в себе рулил делами с моделями и вью. Потом я столкнулся с тем что в некоторых местах надо чтоб к одной модели был доступ у парочки контроллеров. Или к одной модели подписаны несколько вьюх, которые в разных контроллерах. Так из контроллера ушла инициализация вьюх и моделей. Получилось три разных плоскости для моделей вью и контроллеров, внутри каждой из плоскостей все объекты одноуровневые (как в РЛ). Но я продолжал воспринимать понятие модуля как контроллер. Хотя это уже больше на граф похожу из трех видов узлов. Теперь вроде и четкого мвц не осталось, вроде и удобнее чем было. И грубо говоря на всю систему осталась одна вью, одна модель и один контроллер (пусть они и выглядят как коллекция из структур а не одна структура, но мы ведь в большинстве случаев можем на это забить). Разделение ролей между вью, моделями и контроллерами четкое. Это круто, но это уже не тот мвц с которого всё начиналось. И теперь уже мысли может нафиг это надо и проще ведь можно. Чувствую скоро забью на все паттерны и пойду функциональщину на петоне клепать. Добавлено через 2 часа 46 минут Про медиатор я не знаю как объяснить ![]() Я могу процитировать гофов или еще кого. Но если: Цитата:
На практике медиатор не есть необходимым условием, ровно как и все остальные паттерны, как и любые другие задачи - те которые решает медиатор, можно решить иначе. Для меня задача медиатора состоит в том, и этим он для меня полезен - я за медиатором инкапсулирую несколько сущностей, чтоб с точки зрения упомянутой системы они выглядели как одна. Изометрия: С изометрией: Контроллер не знает что у меня есть вью террана(у которой внутри еще тайлы), вью города(у которой внутри здания), вью жителей, дорожного траффика, неба, партиклов. Контроллер видит мой медиатор города и всё. Кроме того. Медиатор например слушает клики по зданиям из вью города. Оборачивает в нечто свое, и в контроллер уже посылает более понятную для контроллера информацию. Да, это можо сделать и корневой вью, в которой ветками будут все эти вью. Но сам по себе медиатор технически не есть визуальным объектом. Это композиция визуальных объектов. Хотя с точки зрения контроллера он и выглядит как вью. Поэтому вот он выделен как отдельная сущность. Второй пример который я приводил - медиатор попапов. В этом случае контроллер вообще не вкурсе сколько в нашей программе попапов и что они умеют. Контроллер умеет понимать несколько сообщений из медиатора: купить что-то, например, или открыть какое-то другое окно. Про открытие/закрытие попапа контроллер вообще не догадывается. Он просто видит медиатор, и медиатор для него всегда открыт (ну или можно его закрывать, это уже не суть важно). Опять же. Визуал у нас в попапах. А медиатор просто предоставляет апи аналогичное вьюхе. Но сам по себе не есть вьюхой. Это композиция из всех входящих в него попапов. Третий пример банально любой компонент. У нас есть кнопка. Рисованная, визуальная, кликабельная. Мы можем контроллером подписаться на эту кнопку, но лучше обернуть ее во что-то и саму логику нажатий инкапсулировать там. Вот это что-то и будет медиатором. (Но в таком исполнении медиаторы не очень люблю и считаю оверхедом, так как можно эту логику инкапуслировать во вью кнопки). С таким взглядом на медиаторы мы еще более отделяем логику от представления. У нас получается совсем простое представление, которое даже правильно отрисоваться не умеет, которое даже модель слушать не умеет. Это просто скин. А вокруг скина медиатор, который подписан на модель, и на который подписан контроллер. Еще по аналогии с кнопкой. Я приводил пример с казино. Вот наш медиатор умеет работать с разными машинами-скинами. В которых минимально отличается логика поведения визуала (партиклы другие, эффекты другие). Но контроллеру на это пофиг, а медиатор эти шкурки с анимашками легко внутри себя переключает. Контроллер же просто видит что мы сейчас в игровом окне, в котором есть игровая машина, всё.
__________________
Кто к нам с чем для чего - тот у нас того от того. Последний раз редактировалось Dukobpa3; 31.10.2013 в 16:18. |
|
|||||
|
[Offtopic]
Цитата:
Цитата:
![]()
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Главное что нужно понять:
Медиатор НЕ ВИЗУАЛЬНЫЙ ОБЪЕКТ. Но с точки зрения контроллера ведет себя как вью. И вот если вам нужен такой враппер над вашей или вашими вью - это будет медиатор.
__________________
Кто к нам с чем для чего - тот у нас того от того. |
|
|||||
|
Wolsh, если в двух словах, то медиатор это контроллер вида. Его задача передать виду модель, слушать от вида события и передать их куда следует. При этом вид ничего не знает о том как устроено приложение.
__________________
משיח לא בא משיח גם לא מטלפן |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:05. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|