Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.10.2013, 05:01
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 201  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Я не использую понятие медиатор, у меня вью это иерархическая структура, состоящая из контейнеров, которые заполняются виджетами. Виджет ничем не заполняется - это терминальный визуальный элемент
Команда формирует XPath запрос, который вырезает нужную структуру из иерархии видов. Для этого нужен XML.

Старый 31.10.2013, 05:31
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 202  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
терминальный
Терминал? Это который bash, cmd, powershell?
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 31.10.2013, 11:19
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 203  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Цитата:
Сообщение от Dukobpa3 Посмотреть сообщение
Терминал? Это который bash, cmd, powershell?
Это по научному так называют "конечный".
Цитата:
Команда формирует XPath запрос, который вырезает нужную структуру из иерархии видов. Для этого нужен XML.
Решение приятное и, возможно, единственное, если в фреймворк добавлять e2e тестирование.
Но зачем тащить с собой XML? Чтобы перевозить апельсины нужна ёмкость – бочки?

Старый 31.10.2013, 11:50
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 204  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Иерархию, конечно, можно и на Обжектах строить)) Однако у них то нет такой плюшки как XPath/e4x.
__________________
Reality.getBounds(this);

Старый 31.10.2013, 12:15
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 205  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Ябпосмотрел.
А то смущает меня прозрачная вью, вывернутая наизнанку по отношению к системе.
Но, в целом, теперь понятно что такое XML-MVC. Если еще и модели зеркальное дерево имеют - то вполне удобно должно быть.

Добавлено через 12 минут
А, ну да.
Еще и новое слово выучил
Цитата:
Это по научному так называют "конечный".
Вот как хорошо что не иссякли темы про мвц
В них всесторонне развиваешься
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 31.10.2013, 12:49
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 206  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Dukobpa3, а можно поконкретней про медиаторы?))
"для всей системы Вью это медиатор" — для какой системы? Для кучки растерявшихся контроллеров?
Можно ли [выдумать] какой-то простой пример, типа "есть два таких-то Вью, есть два контроллера. И вот возникает такая ситуация /*описание ситуации*/. Тогда мы вводим медиатор, который регистрирует контроллеры и вьюхи, и /*описание действий медиатора*/.
Желательно, чтоб было понятно не только мне, но и другим всесторонне развивающимся))
__________________
Reality.getBounds(this);

Старый 31.10.2013, 13:31
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 207  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Сообщение от Wolsh
для какой системы?
В моем понимании система это и есть наша программа.
Некий уровень абстракции, на котором нам не интересна конкретная кнопка во вью, или конкретный чекер в модели. На этом уровне абстракции нам больше интересны модули вцелом и их апи, которым они повернуты друг к другу. Можем принять что модули, с этой точки зрения - набор одноуровневых блоков (моделей, контроллеров, вью).

А про медиаторы я тут только что много чего-то написал, но так написал что и сам бы не понял. Решил не отправлять. Я подумаю как сформулировать и позже повторный заход сделаю.

Добавлено через 22 минуты
А вообще меня уже конкретно припарил мвц.
Изначально мне нравилось потому что у меня были контроллеры, которые инитят свои модели и свои вьюхи. Получалось модуль - это по сути контроллер, а что там внутри него - уже мало кого волнует, он там сам в себе рулил делами с моделями и вью.

Потом я столкнулся с тем что в некоторых местах надо чтоб к одной модели был доступ у парочки контроллеров. Или к одной модели подписаны несколько вьюх, которые в разных контроллерах.

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

Теперь вроде и четкого мвц не осталось, вроде и удобнее чем было. И грубо говоря на всю систему осталась одна вью, одна модель и один контроллер (пусть они и выглядят как коллекция из структур а не одна структура, но мы ведь в большинстве случаев можем на это забить). Разделение ролей между вью, моделями и контроллерами четкое. Это круто, но это уже не тот мвц с которого всё начиналось.

И теперь уже мысли может нафиг это надо и проще ведь можно.

Чувствую скоро забью на все паттерны и пойду функциональщину на петоне клепать.

Добавлено через 2 часа 46 минут
Про медиатор я не знаю как объяснить
Я могу процитировать гофов или еще кого.
Но если:
Цитата:
Сообщение от Wolsh
когда читаешь (у тех же GoF, например), теоретически все понятно.
То к гофам добавить особо нечего.
На практике медиатор не есть необходимым условием, ровно как и все остальные паттерны, как и любые другие задачи - те которые решает медиатор, можно решить иначе.

Для меня задача медиатора состоит в том, и этим он для меня полезен - я за медиатором инкапсулирую несколько сущностей, чтоб с точки зрения упомянутой системы они выглядели как одна.

Изометрия:
С изометрией:
Контроллер не знает что у меня есть вью террана(у которой внутри еще тайлы), вью города(у которой внутри здания), вью жителей, дорожного траффика, неба, партиклов.
Контроллер видит мой медиатор города и всё.
Кроме того. Медиатор например слушает клики по зданиям из вью города. Оборачивает в нечто свое, и в контроллер уже посылает более понятную для контроллера информацию.

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

Второй пример который я приводил - медиатор попапов.
В этом случае контроллер вообще не вкурсе сколько в нашей программе попапов и что они умеют.
Контроллер умеет понимать несколько сообщений из медиатора: купить что-то, например, или открыть какое-то другое окно.
Про открытие/закрытие попапа контроллер вообще не догадывается. Он просто видит медиатор, и медиатор для него всегда открыт (ну или можно его закрывать, это уже не суть важно).
Опять же. Визуал у нас в попапах. А медиатор просто предоставляет апи аналогичное вьюхе. Но сам по себе не есть вьюхой. Это композиция из всех входящих в него попапов.

Третий пример банально любой компонент.
У нас есть кнопка.
Рисованная, визуальная, кликабельная.
Мы можем контроллером подписаться на эту кнопку, но лучше обернуть ее во что-то и саму логику нажатий инкапсулировать там. Вот это что-то и будет медиатором. (Но в таком исполнении медиаторы не очень люблю и считаю оверхедом, так как можно эту логику инкапуслировать во вью кнопки).
С таким взглядом на медиаторы мы еще более отделяем логику от представления.
У нас получается совсем простое представление, которое даже правильно отрисоваться не умеет, которое даже модель слушать не умеет. Это просто скин. А вокруг скина медиатор, который подписан на модель, и на который подписан контроллер.

Еще по аналогии с кнопкой. Я приводил пример с казино. Вот наш медиатор умеет работать с разными машинами-скинами. В которых минимально отличается логика поведения визуала (партиклы другие, эффекты другие). Но контроллеру на это пофиг, а медиатор эти шкурки с анимашками легко внутри себя переключает. Контроллер же просто видит что мы сейчас в игровом окне, в котором есть игровая машина, всё.
__________________
Кто к нам с чем для чего - тот у нас того от того.


Последний раз редактировалось Dukobpa3; 31.10.2013 в 16:18.
Старый 31.10.2013, 16:19
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 208  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
[Offtopic]
Цитата:
Чувствую скоро забью на все паттерны и пойду функциональщину на петоне клепать.
Я так и сделал. (только Ruby/CoffeScript, who cares?) Чувствую себя счастливее. Расстраиваюсь, если всю мою мысль не получается написать одной элегантной строчкой кода.
Цитата:
В них всесторонне развиваешься
Это ещё что! Например, в сетевых кабелях летают электроны (или что там летает): есть электрон – получаем единичку, нету – получаем нулик. Это не секрет, но есть проблема: когда электрон доходит до какой-нибудь точки – это может быть его конечная точка или даже ретранслятор – он отражается и летит в другом направлении. Это проблема. Поэтому на концы ставят специальные штуки, которые гасят сигнал и этого не происходит. Так о чем это я: знаешь как эти штуки называются? Терминаторы

Старый 31.10.2013, 16:19
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 209  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Главное что нужно понять:
Медиатор НЕ ВИЗУАЛЬНЫЙ ОБЪЕКТ.
Но с точки зрения контроллера ведет себя как вью.

И вот если вам нужен такой враппер над вашей или вашими вью - это будет медиатор.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 31.10.2013, 16:20
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 210  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Wolsh, если в двух словах, то медиатор это контроллер вида. Его задача передать виду модель, слушать от вида события и передать их куда следует. При этом вид ничего не знает о том как устроено приложение.
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:29.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:29.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.