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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Mar 2010
Сообщений: 11
По умолчанию Как проектировать объекты с MVC?

Доброе время суток!
Разбираться с шаблоном проектирования MVC стал недавно. Обнаружил, что программирую как старая бабулька. В связи с этим решил переписать часть своего проекта с использованием MVC шаблона.

Примерная постановка задачи (так как оно есть сейчас):
1. Есть набор различных по своей сущности объектов сцены приложения (надписи, картинки, внешние SWF и прочее, прочее...).
2. Эти объекты имеют как различные свойства и методы так и одинаковые.
3. Взаимодействие с пользователем примерно во всех объектах одинаковое (перемещение, поворот, реакция на клавиши и их сочетания)
4. Каждый из объектов является экземпляром отдельного класса и включает в себя методы, свойства, слушатели и т.д. и т.п.
Вопрос: Как правильно построить проект с учётом MVC?


Варианты которые я на данный момент рассматриваю как возможные:
1. Один Контроллер, Одна модель, Много вьюшек (но тогда модель будет для каждого отдельного объекта сцены хранить имена ненужных свойств)
2. Один контроллер, одна вьюшка, много моделей (но тогда вьюшка получится очень сложной для отображения объекта в зависимости от модели)
3. Один контроллер, много моделей, много вьюшек (этот вариант не лучше чем тот который есть сейчас, просто несколько упростит код каждого класса).

Пожалуйста подскажите как лучше поступить. Если не сложно, то с обоснованием!
Заранее благодарен!

Старый 06.11.2011, 16:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
4. Много контроллеров, моделей и вьюшек.

Старый 06.11.2011, 18:17
yurchik_cool вне форума Посмотреть профиль Отправить личное сообщение для yurchik_cool Найти все сообщения от yurchik_cool
  № 3  
Ответить с цитированием
yurchik_cool

Регистрация: Mar 2010
Сообщений: 11
Цитата:
Сообщение от etc Посмотреть сообщение
4. Много контроллеров, моделей и вьюшек.
На мой взгляд это не очень хороший подход, т.к. в большинстве случаев каждый контроллер будет писаться копи-пастом. Особенностей обработки объектов сцены не так уж и много их можно решить расширением некоторого базового класса контроллера. Исходя из этого контроллер будет один. (это мой взгляд на вещи, если есть аргументы в поддержку размножения классов контроллеров, прошу высказываться)

Старый 06.11.2011, 18:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от yurchik_cool Посмотреть сообщение
На мой взгляд это не очень хороший подход, т.к. в большинстве случаев каждый контроллер будет писаться копи-пастом. Особенностей обработки объектов сцены не так уж и много их можно решить расширением некоторого базового класса контроллера. Исходя из этого контроллер будет один. (это мой взгляд на вещи, если есть аргументы в поддержку размножения классов контроллеров, прошу высказываться)
Ну если у вас контроллеры занимаются одним и тем же, то да, копипаст. Надо ещё определиться, что в вашем понимании контроллер.

Старый 06.11.2011, 23:54
yurchik_cool вне форума Посмотреть профиль Отправить личное сообщение для yurchik_cool Найти все сообщения от yurchik_cool
  № 5  
Ответить с цитированием
yurchik_cool

Регистрация: Mar 2010
Сообщений: 11
Цитата:
Сообщение от etc Посмотреть сообщение
Ну если у вас контроллеры занимаются одним и тем же, то да, копипаст. Надо ещё определиться, что в вашем понимании контроллер.
В данном случае контроллер будет заниматься прослушиванием вьюшки и записью данных в модель.

Старый 07.11.2011, 14:57
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от yurchik_cool Посмотреть сообщение
В данном случае контроллер будет заниматься прослушиванием вьюшки и записью данных в модель.
Конкретной вьюшки и конкретной модели. Код вовсе не одинаков будет.

Старый 07.11.2011, 01:22
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,601
Записей в блоге: 17
Копипаст кода неплохо лечится наследованием. Ну, например ItemShopController extends AbstractShopController.

Старый 07.11.2011, 21:14
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 8  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
Описание задачи слишком уж обще. Так можно описать любую программу.

5. Одна вьюшка (многовложенная), один контроллер (расширяющий массу предков), одна модель ( здесь не класс, а совокупность классов каждый из которых занимается решением опр. отдельной задачи).

Старый 08.11.2011, 12:21
yurchik_cool вне форума Посмотреть профиль Отправить личное сообщение для yurchik_cool Найти все сообщения от yurchik_cool
  № 9  
Ответить с цитированием
yurchik_cool

Регистрация: Mar 2010
Сообщений: 11
Всем спасибо! Выводы сделаны, буду реализовывать.

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

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

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


 


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


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