Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   Несколько вопросов по PureMVC (http://www.flasher.ru/forum/showthread.php?t=130095)

marat_sa 17.09.2009 17:13

Несколько вопросов по PureMVC
 
Добрый день, начал делать проект с использованием PureMVC.
Остались непонятны некоторые моменты. Подскажите пожалуйста.

1) Вот есть там команды
Код AS3:

registerCommand(ApplicationFacade.CMD_STARTUP, StartupCommand);

Если сделаем так
Код AS3:

facade.sendNotification(ApplicationFacade.CMD_STARTUP, this);

StartupCommand выполнится
А если в каком-нить медиаторе на нее подписаться, то он ведь тоже отработает?
В таком случае не проще ли все сделать через команду, а не раскидывать все по медиаторам?
Код AS3:

(facade.retrieveMediator(SomeMediator.NAME) as SomeMediator).foo();

2) Еще... Есть оповещения ассоциированные с командами, а есть просто оповещения?
Код AS3:

public static const CMD_STARTUP:String = "startup"; //команда
public static const NOTE_SOME:String = "some"; //нотификация

Чего-то еще хотел спросить... забыл... потом напишу, как вспомню))

2morrowMan 18.09.2009 14:00

Зачем так делать?
Если потом вы этот медиатор уберете/переименуете, тогда придется редактировать и команду. Вот такая вот зависимость у вас получиться, а PureMVC призван сводить такие зависимости к минимуму.
И вообще модель должна рассылать оповещение, что она готова к использованию и в медиаторах надо слушать это событие вместо startup.

marat_sa 18.09.2009 15:39

То есть из команд медиаторы лучше не трогать, а только менять модель? Медиаторы сами по себе слушают нотификации. Так?

> И вообще модель должна рассылать оповещение...
А представление на действия пользователя?

2morrowMan 21.09.2009 11:40

Цитата:

Сообщение от marat_sa (Сообщение 851835)
То есть из команд медиаторы лучше не трогать, а только менять модель? Медиаторы сами по себе слушают нотификации. Так?

Медиаторы из команд можно трогать, только если это нужно, например, для создания/удаления медиатора.
Модель можно изменять только с помощью команд, а медиаторы как с помощью команд так и слушая оповещения.

Цитата:

Сообщение от marat_sa (Сообщение 851835)
А представление на действия пользователя?

Медиатор реагируют на события(Эвенты) от представление(элемент интерфейса) и делает нужное действие, определенное логикой вашего приложения: меняет представление без нужды изменения данных модели; рассылает оповещение, на которое может отреагировать контроллер и вызвать соответствующую команду, или на этоже оповещение может отреагировать другой медиатор.

Читайте Implementation Idioms & Best Practices.

marat_sa 21.09.2009 16:25

2morrowMan, спасибо за ответы))

> Читайте Implementation Idioms & Best Practices

Читал, но на теории все вроде бы понятно, а вот практических примеров очень мало в Best Practices( Вот и начинают вылазить вопросы при разработке конкретного приложения.

terbooter 27.10.2009 14:09

Код:

StartupCommand выполнится
А если в каком-нить медиаторе на нее подписаться, то он ведь тоже отработает?
В таком случае не проще ли все сделать через команду, а не раскидывать все по медиаторам?

В этом и есть смысл данного фреймворка.
Если вам не понятны преимущества, то зачем вы его изучаете?
=))

marat_sa 27.10.2009 15:44

Заканчиваю проект на pureMVC. Чувствую себя кодогенератором =(
Если еще буду делать на нем проекты (что врядли) сразу возьму себе в помощь человек 5...

А так в целом неплохо.


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

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