![]() |
[robotlegs] - Команда и Медиатор
Всем привет. Немного освоившись с МВЦ захотелось пощупать движок. выбрал robotlegs. Читаю мануалы, часть понятна, но есть и непонятные моменты.
Как я понял - часть логики помещается в различные Command'ы и часть в Mediator'ах отдельных вьюшек. Подскажите, пожалуйста, как этим грамотно пользоваться :) (и модель меняется как и с медиатров так и из комманд ? как опредлить где лучше для какого случая это делать) спасибо. |
Я у себя использую это так:
состояние view меняет его медиатор. Команды меняют модель. Соответственно при выполнении команды, меняется модель, на изменение модели подписан медиатор, который производит манипуляции со своим представлением. |
хорошо, спасибо! я тоже к такому склоняюсь. но в примерах роботлегса есть моменты когда медиатор тоже меняет модель. мне кажется это не очень хорошо, так как когда вьюшек много то хз что там какая вьющка может поменять и лови потом баги, а вот когда все изменения можно найти в коммандах - это практичнее.
|
Это в каком примере медиатор меняет модель?
|
самое начало - Hello Flash, класс --- >BallMediator
Код AS3:
|
Нашел в cafetownsend в EmployeeDetail, но там у вьюхи своя собственная модель и менять ее может только этот медиатор. В принципе, такое не рекомендуется, но как и в любой другой ситуации иногда можно отступать от принципов (если ситуация остается контролируемой).
Добавлено через 4 минуты Цитата:
|
Цитата:
лучше модель будет менять таки камманда спасибо вам товарищи за ответы |
Цитата:
|
мы как раз тут совсем не соприли ((((((( : - я лишь соглашался со всеми постами и с вашим тоже
все гуд, спасибо |
команда |
Цитата:
|
А названия топика недостаточно для понимания?
|
:rolleyes:
да, я неграмотный, простите |
ага, на первом же проекте с роботлегсом началось, - в медиаторах дергаю сервисы и иногда модели, а вот события в сервисах уже слушают комманды.
например юзер логинится - кликает логин - медиатор обращается к сервису, тот работает :) и в конце сообщает что что-то он там наработал и пора это использовать , и тут команда уже смотрит что делать дальше. это нормальный подход ? |
Как-то попахивает. Надо (ну или не надо ;)):
1. Юзер кликает логин. 2. Медиатор шлет событие. 3. Команда реагирует на событие и дергает сервис. 4. Сервис, если все нормально меняет модель или шлет событие / меняет модель, если что-то пошло не так. 5. Модель рапортует об изменении. 6. Медиатор реагирует на изменения. |
1 - Это выходит грубоговоря на каждое действие юзера нужно создавать команду ? тоесть выходит 3 хендлера - первый ловит клик в самой вьюшке , второй в медиаторе(вьююшка послала ивент), и 3 - сама команда. Тогда будет немерянно команд и слушателей событий.
2 - сервис менять может модель ? может ли медиатор слушать изменения сервиса ? (я понимаю что все это условности - но есть же практические наработки, помогите новичку плиз) |
Robotlegs именно тем и хорош, что не заставляет вас делать что-то так или иначе, у вас полная свобода действий. А бестпрактис это каждый для себя сам уже нарабатывает, как оно удобнее, правильнее или быстрее или ... короче, это с опытом придет. Если сейчас вам удобно, то это уже можно считать правильным, позже сами поймете что вы делаете не так и почему.
1. медиатор сам может подписаться на клик вьюхи (но удобнее тут использовать сигналы), и сам шлет уже кастомное событие, которое поймает тот кому это нужно (например примапленная команда). Либо да, въюха шлет событие, медиатор ловит и сам шлет либо это же событие дальше, либо свое новое, но это каша и неудобно, но за то гибко. 2. может и может. |
| Часовой пояс GMT +4, время: 15:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.