Показать сообщение отдельно
Старый 26.03.2011, 14:51
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 5  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
2 GAIKER:
Цитата:
Если контроллер это помнит, то зачем тогда модель?
Может быть вы и правы. Но сложно сделать контроллер вообще без состоняния не загадив модель.
Цитата:
Если контроллер меняет вьюшку, то зачем тогда модель?
Например морковка должна подсвечиватся, если ее можно сорвать и не подсвечиваться, если нельзя - следить за действиями вроде не обязанность модели.
Или более сложный пример - выбираем место для посадки, таская морковку по всему полю - нам что, при этом модель менять? А если еще какая сложная подсветка ячеек при этом понадобится?
Цитата:
Нужен механизм для смены контроллеров всех моделек при смене глобального состояния
Моя идея: не менять контроллер при смене состояния, вместо этого менять его поведение.
Похоже, так и придется делать - завязывать "контейнер" для контроллера на модельку морковки, а подменять уже внутренности этого контейнера - так хоть не загонишься с переписыванием ссылок.
Паттерн "состояние" рулит - это всё понятно.

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

Небольшой оффтоп по поводу связи вьюха - модель: Как по модели найти вьюху?
Я тупо завожу хеш-таблицу в главной вьюхе, содержащей морковки и получаю так: _viewByModel[model].
Вьюха хранит ссылку на модель напрямую. Это нормально, или кто-то нашёл более вменяемый способ?

Цитата:
Можно сделать один контроллер для всех морковок, который хранит их модели в массиве, и тоже реализован по описанной выше схеме. Я бы сделал именно так.
Это если мы выращиваем только морковки, а есть еще редиски, свеклы и животные - для них в этом общем контроллере веточки if-ов растут как на дрожжах.

2 ShockWave512
Цитата:
ох не для всех игр подходит MVC, совсем не для всех
Если он не подходит для такой простой и типичной ситуации - на что он вообще годится?

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

2 Psycho Tiger
Цитата:
@expl, я не очень понял в чем загвоздка, но могу порекомендовать бабблинг. =)
Смысл в том, что по клику на однотипные объекты рассылается бабблинг событие. Контроллер ловит это событие и может стянуть модель у вьюшки, по event.target.
И баблинг у меня есть и модель вьюшка контроллеру передает - беда в том что контроллер один на все типы моделей