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

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

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

Регистрация: Dec 2011
Сообщений: 70
По умолчанию Модель MVC и пакеты AS3

Здравствуйте.
Хочу спросить, как лучше распределять классы по пакетам при использовании MVC. Я вижу 2 варианта
1) Создаю пакет, относящийся к какой-либо сущности моей системы (например, ScreenKeyboard или InputField) и в этот пакет размещаю контроллер, вьюшку и модель для этой сущности.
2) Создаю пакеты Controllers, Views и Models. Ну и в эти пакеты помещаю все контроллеры, вьюшки и модели соответственно.
Можно ли сказать, что какой-то из этих вариантов правильнее? Может быть, есть третий вариант, про который я не написал? Или вообще надо смотреть по ситуации и какого-то решения в общем виде не существует?

Старый 18.10.2012, 14:11
Silicium вне форума Посмотреть профиль Отправить личное сообщение для Silicium Найти все сообщения от Silicium
  № 2  
Ответить с цитированием
Silicium
 
Аватар для Silicium

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
По моему, кому как удобнее. Если вы работаете один, разумеется. Если так, то организация пакетов - ваше личное дело - делайте так, чтобы потом легко было разобраться, что к чему. Лично я использую преимущественно второй вариант

Старый 18.10.2012, 14:26
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Согласен. Тоже пользуюсь вторым, даже если сущность — вполне самостоятельная триада MVC.
Тут есть еще момент, связанный с именованием. Если мы распихиваем каждую триаду в свой пакет, то по логике вещей должны называть их domen.projects.blablabla.screenKeyboard.View и т.п. Таким образом при сборке, где-нибудь в основном Вью у нас будет пять-десять классов с именем View — как-то не фонтан. Гораздо приятней выглядит именование domen.projects.blablabla.views.ScreenKeyboardView. Если же совмещать, то масло масляное: domen.projects.blablabla.screenKeyboard.ScreenKeyboardView
Ну это так.. один из доводов. Если сущности реюзабельные, и вы надеетесь использовать их в других проектах, то наверно есть смысл в первом подходе.
__________________
Reality.getBounds(this);

Старый 18.10.2012, 16:39
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
domen.projects.blablabla.views.ScreenKeyboardView
Помоему так большинство и пишут , другие варианты избыточны. Причем в точь точь , как написал wolsh
__________________
Марк Tween

Старый 19.10.2012, 09:02
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 5  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
Использую первый вариант, но классы не называю просто View.
Структура примерно такая:
Код AS3:
app.main.mvc.c.ControllerMain. 
app.main.mvc.v.ViewMain. 
app.main.mvc.m.ModelMain. 
...
app.main.somecomponent.mvc...
Удобно работать с отдельными модулями приложения. Все в одном месте. Ведь каждый комплнент mvc может содержать не только 3 класса. В папке с вью могут быть скины и другие визуальные модули, которые относятся к данному mvc компоненту.
__________________
http://artem-lobachenkov.ru/

Старый 19.10.2012, 09:47
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Да. Тут как раз вскрывается парадокс MVC.
С одной стороны, триада MVC какой-либо сущности с точки зрения ООП составляет вполне самостоятельный Объект, со своей четко абстрагированной ответственностью, инкапсуляцией и т.д.
С другой стороны парадокс: основная парадигма самого MVC состоит как раз в независимости частей друг от друга, в отсутствии жесткой связанности, возможности замены вьюшек и контроллеров. Что так же полностью соответствует ООП, но делает требование складывать всю триаду в один пакет необязательным.
Art_133, а в пакете Main есть еще что-то кроме пакета mvc? И зачем нужны подпакеты m, v и с — в них более одного класса? Если бы классы ControllerMain, ViewMain и ModelMain лежали в пакете mvcMain, это вызвало бы затруднения? Как по мне, такая структура дважды избыточна.
__________________
Reality.getBounds(this);

Старый 19.10.2012, 13:02
Art_133 вне форума Посмотреть профиль Отправить личное сообщение для Art_133 Посетить домашнюю страницу Art_133 Найти все сообщения от Art_133
  № 7  
Ответить с цитированием
Art_133
 
Аватар для Art_133

блогер
Регистрация: Feb 2007
Адрес: Москва
Сообщений: 538
Записей в блоге: 2
Отправить сообщение для Art_133 с помощью Skype™
1. В пакете Main есть что-то кроме mvc. Другие компоненты.
2. В подпакетах m v с может быть несколько классов.
__________________
http://artem-lobachenkov.ru/

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

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

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


 


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


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