PureMVC Медиаторы
Начал учить PureMVC и походу возникли некоторые вопросы.
Правильно ли пихать все Медиаторы в главный Медиатор приложения, регистрируя их и оповещать все вместе? Если будут компоненты 20-30 шт. скажем, разумно ли все это обрабатывать в одном классе? Что то мне трудно дается отношение между Медиатором и всей системы( |
Медиатор служит прослойкой между его видом и приложением. Он знает какие события генерирует вид, как преобразовать их для приложения и как оповестить приложение о событии, а также получает ссылку на модель для своего вида. Для однотипных видов, медиаторы могут быть также однотипны. Но, в любом случае, для каждого экземпляра вида, создается отдельный экземпляр соответствующего ему медиатора.
|
Я это знаю)
Вопрос был - правильно ли разместить (регистрировать) все другие медиаторы в один главный Медиатор? То есть управлять только через главный Медиатор. Примерно так: Код AS1/AS2:
|
Нет неправильно. Даже если закрыть глаза, на то что так (new IndexPage().show о_О) регистрировать медиаторы даже по меркам pureMVC неправильно.
|
А как по вашему должно быть правильно? Пожалуйста дайте мне хоть какой то совет, я уже голову переломал над этой архитектурой.
На данный момент мой код делает одно, все компоненты обрабатывает свой медиатор, главный медиатор получает ссылки на все остальные медиаторы и слушает события от всех. С главного медиатора я могу воздействовать на публичные свойства, методы других медиаторов. Мне этот вариант показался удобным. |
Я давно уже не работал с pureMVC, однако открыв свои старые исходники я обнаружил, что я так и делал, регистрировал медиатры в главном. Насколько я помню, в документации, тьюториалах, и тех примерах приложений на pureMVC, которые мне удалось найти в инете, так и делалось, поэтому мне интересно послушать, почему это неправильно :-) Еще попадался вариант где медиатры регистрировались в командах, но не знаю лучше это или нет. И да, pureMVC здесь не любят, поэтому ожидаю советы типа "вообще не следует работать с этим г..м", но надеюсь что хоть что то по существу будет сказано).
|
PainKiller, ожидаемые ответы у вас правильные, pureMVC на редкость корявое решение в рамках as3 и flash platform. Я тоже уже не работал с ним лет пять.
По существу. Если вы заметили, то в этих примерах в медиаторе главного вида регистрируются медиаторы для видов, которые являются частями главного вида и уже находятся в списке отображения. Такой подход накладывает некоторые ограничения на переконфигурирование приложения, вам уже недостаточно поменять контроллер (команды инициализации главного вида и добавления новых видов в список отображения), но придется еще и править медиаторы. Увы, я не нашел официального примера с приложением в котором виды создавались бы не все сразу при старте приложения. Цитата:
Цитата:
namespaces, суть MVC-фреймворков повысить гибкость и удобство изменения приложения во время его эволюции и роста. Это достигается, в частности, тем что части приложения независимы и ничего не знают о других частях (за исключением контроллеров). |
Цитата:
Я так понял вы имеете ввиду, не инициализировать все медиаторы одновременно без надобности или на каждый медиатор повесить свою команду (контроллер)? Цитата:
|
Нет вида на экране == нет медиатора. Команда, по событию, создает и добавляет вид на экран и регистрирует его медиатор и удаляет предыдущий вид и его медиатор, если в них уже нетнадобности.
|
alatar, спасибо за ответ.
Цитата:
|
Часовой пояс GMT +4, время: 16:31. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.