MVC hello world
Прочитал в поиске несколько тем про mvc, но как-то до конца не понял некоторые моменты.
Если форуму не лень, объясните еще раз. Хочу сделать менюшку. Данные с ее настройками кнопок меню (картинки, координаты) лежат в xml. Правильней парсить xml в моделе или лучше это сделать в контроллере и потом передать в модель? Все ли события надо прогонять через контроллер? То есть, если во view в конструкторе передается модель, как будет происходить события выбора менюшки? Ловлю клик во view, меняюиз view в моделе номер выбранной менюшки, после чего модель диспатчит событие о том что она изменилась, это событие ловит контроллер и запускает, ну например, анимацию во view? Это правильный расклад? |
Да не зацикливайтесь вы на канонической реализации mvc, делайте как вам удобнее :) Паттерны призваны упростить жизнь, а не усложнить. Для одной менюшки я бы вообще не стал писать mvc реализацию, оно того не стоит.
Смотришь чужой код, а одна кнопка занимает 15 классов, хотя должна занимать 15 строк. |
Да нет, менюшка эта, как пример. Mvc мне нужен не ради mvc, просто несколько классов в моей программке превратилось в огромную свалку логики, лиснеров и спрайтов ) И пришло время их отрефакторить.
|
|
Цитата:
|
Psycho Tiger, спасибо. А как правильней контроллеру подписываться на события из view? Создавать спрайты с кнопками в контроллере вешать на них лиснеры и передавать во view, или повесить лиснеры целиком на вью? Или по-ситуации?
|
Вью и должен диспатчить что нужно. Если вы хотите поймать событие Click, вешайте на вью слушатель Click, можно создавать свои события и пользоваться бабблингом.
|
Цитата:
Контроллер подписывается на события от view, на мой взгляд лучше всего чтобы он не подписывался на события от view.mySprite, к примеру. Потому что тогда вьюшка обязательна должна иметь этот самый mySprite, что не айс. Можно либо диспатчить одно кастомное событие, которое содержит всю информацию о произошедшем, либо подписываться на много событий. |
Часовой пояс GMT +4, время: 23:54. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.