Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как делать ветвление структуры в MVC? (http://www.flasher.ru/forum/showthread.php?t=117866)

Gaen 08.11.2008 18:38

Как делать ветвление структуры в MVC?
 
Есть Document Class, в котором размещён код прелоадера. После загрузки создаётся класс Main, в конструкторе которого инициализируются модель, вью и контроллер. Контроллеру говорим грузить данные. Он говорит модели перейти в состояние "загрузка данных" и начинает грузить данные. Вью, получив от модели событие изменения состояния, показывает что грузятся данные.

Данные загрузились. Говорим модели перейти в основное состояние, она говорит об этом вью. А вот дальше...

Сайт имеет несколько модулей: для показа текста, для показа фоток итд. Каждый модуль так же грузит данные для своих нужд. В общем появляется понятие модуля.

Контроллер получает событие о переходе в основное состояние и в ответ на это говорит модели, какой модуль надо показывать. Модель в ответ на это посылает событие о том, что изменился активный модуль.

Итак, ситуация: всё загрузилось, в контроллер пришло событие что нужно показывать такой-то модуль.

Что делать дальше? Где должны располагаться модель, вью и контроллер модуля? Должны ли они быть обособлены, или каждая часть должна быть создана как дочерний объект глобальных M, V и С? Как передать им управление? Как организовать общение с главной связкой?

etc 08.11.2008 18:56

Создавайте отдельные MVC-структуры друг в друге, в соответствии с моделью display object на экране.

Gaen 08.11.2008 19:00

etc, вот я и пытаюсь понять, как запихивать их друг в друга. Что внутри чего должно быть?

etc 08.11.2008 19:16

Модель в модели, вьювер во вьювере. Контроллерам же обычно достаточно управлять на уровне корневых элементов.

Gaen 08.11.2008 19:19

Спасибо, буду пробовать и спрашивать вопросы по мере возникновения.

s8000_1 08.11.2008 22:39

__etc, а можно ли делать дочернее MVC полностью внутри вьювера?
Вот, например, у меня есть какой-нибудь хитрый контроллер-компонента, сделанный по принципу MVC, и я им хочу заменить стандартную кнопку. Он работает и без родительской модели автономно в принципе. Зачем его внутреннюю модель выносить наружу?

etc 08.11.2008 23:01

s8000_1, я не понял вопроса. Ни того, ни другого. Модель во вьювере не хранится, это первое. Внутреннюю модель тоже никто никуда не выносит, более того, не мешают модели, контроллеры и представления в одну кучу.

s8000_1 08.11.2008 23:30

__etc, разверну...

Есть визуальная AS3-компонента (типа DataGrid и т. п.) с понятным и логичным внешним интерфейсом. Но взаимодействие составных частей внутри компоненты устроено по принципу MVC: своя модель, свой внутренний контроллер и свое представление.

Я хочу эту компоненту прилепить к большому приложению (его представлению).
Получится, что MVC-компонента находится внутри представления другого MVC-большого приложения.

Это разве не правильно?

BlooDHounD 09.11.2008 03:33

s8000_1, ваще, если быть честным с общественностью, то DataGrid это чистый вьювер. ведь данные вы ему отдельно кормите? конечно всё зависит от реализации, но по идеологии он должен быть вьювером.

s8000_1 09.11.2008 04:07

BlooDHounD, так я как пример привел. Можно ведь соорудить гораздо более сложный компонент, для которого удобнее использовать внутри MVC (10 DataGrid'ов, 20 кнопочек и все это хитрым способом взаимодействует).

Поэтому я не совсем понимаю что значит "модель в модели".


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

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