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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 22.09.2010, 16:47
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от GAIKER Посмотреть сообщение
В этой теме затронут вопрос, с которым я давно не могу разобраться: как же все-таки делать иерархию mvc?

Из вышесказанного я смог выделить несколько мыслей:
1. Модель у нас одна, все слушают её и пишут в неё.
2. Иерархия модели аналогична иерархии DisplayList'а.

А что с контроллерами? Тоже ветвятся? Тогда откуда взялось обращение дочерних контроллеров к родительским? Кто кому на кого передает ссылки? Блин, это настолько непонятно, что я до сих пор не могу правильно сформулировать вопрос.
У нас второй вариант. И контроллеры тоже ветвятся, но не как DisplayObject, а простой связью — более старший контроллер передает ссылку на себя младшему. Как правило, в конструкторе.


Цитата:
Сообщение от GAIKER Посмотреть сообщение
Допустим, есть игровое приложение, состоящее из двух больших кусков: "курилка", где можно создать игру либо присоединиться к существующей, и собственно сама игра.
Document Class создает главный контроллер и передает ему ссылку на себя же в качестве контейнера, этот контроллер создает модель, затем создает вид, передавая ему модель, и добавляет в контейнер. Главная триада up and running.
Теперь нужно добавить триаду, которая будет отвечать за курилку. Как это должно произойти? Как она должна быть связана с главной триадой?
Основной контроллер грохнет вид, контроллер и модель игры, создаст модель курилки (если она не живет с самого начала) и вид с контроллером курилки. Проще говоря, создает другую триаду. Основная триада максимум получает пользовательские события от дочерней. В случае, если игра оффлайн, то получает событие «Игра закончена», либо в случае онлайна — от сервера.

Добавлено через 3 минуты
Цитата:
Сообщение от GAIKER Посмотреть сообщение
Спасибо, вроде прояснилось.
Еще вопрос: каким образом из дочерней триады достучаться до родительской модели?
Я вот честно говоря совсем не вижу необходимости. Зачем оно? Как максимум, к родительской модели может обратится дочерний контроллер через ссылку у родительского контроллера.


Цитата:
Сообщение от GAIKER Посмотреть сообщение
она начинает её слушать, и при любом изменении одной из них получается перполнение стека от событий, которыми они друг друга закидывают.
Значит где-то нет проверки на текущее значение.

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

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

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


 


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


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