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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.03.2011, 01:14
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 1  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
По умолчанию Снова MVC: контроллеры мелких объектов

Допустим, делаю фермоподобную игру.
Уже на не первом проекте замечаю рост неподдерживаемой условной логики в общем для всех мороковок, животных и строений контроллере.

Собственно, понятно, что:
- базовая модель "карта фермы" содержит дочерние модельких мелких объектов (2-5 типов)
(ничего не делает, только помогает в получении всякой информации и рассылает события)
- главный контроллер
а) забирает данные от сервера, наполняет и меняет соответствующим образом "карту фермы"
б) принимает данные от кликов по объектам карты и меняет соответствующим образом модель и ее мелкие объекты
с) считает время созревания/протухания/сбора каждого объекта, изменяя в нужный момент модель
- вьюшка
слушает модель, передает события действий пользователя контроллёру

А вот что не понятно:
как избавить контроллер от слежения за всеми типами всех объектов?

- перенести логику в модель?
не получится:
а) Например при заходе к другу действия от пользователя надо обрабатывать по другому
б) В зависимости, от выбранного инструмента нужно по-разному реагировать на действия пользователя
с) Ну логику для разных типов мы разделим, зато загадим мелкую модель жуткой логикой для разных ситуаций

- запихать во вьюху?
а) приведет к дикому копипасту, т.к. одни и те же дейтсвия можно делать с помощью разных частей интерфейса
б) опять же, загадим вьюху условной логикой для разных ситуаций. А выделить в ней классы-состояния при высоком уровне копипаста (см.пункт а) - нереально.

- наделать по контроллеру на модельку?

идея нравится, но вот как это сделать?, ведь требования такие:
а) контроллер должен считать и помнить что он насчитал для своей модельки;
б) решать какие действия доступны для его модельки;
с) приводить вьюшку в соответствие с возможными действиями (заставлять всякие значки "скликни меня" рисовать)

но при этом он должен быть отвязан от модели, т.к.:
а) нужны разные контроллеры на одну и ту же модель для разных состояний игры - надо по-разному обрабатывать действия пользователя
б) нужен механизм для смены контроллеров всех моделек при смене глобального состояния
с) кто-то должен знать какой контроллер должен быть назначен модели - кто? Будь это моделька или вьюшка - проблем достаточно и в том и в другом случае.

Есть какие-нибудь идеи?


Последний раз редактировалось expl; 25.03.2011 в 01:22.
Создать новую тему   Часовой пояс GMT +4, время: 11:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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