Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Модель MVC и пакеты AS3 (http://www.flasher.ru/forum/showthread.php?t=185681)

RigidFlasher 18.10.2012 14:06

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

Silicium 18.10.2012 14:11

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

Wolsh 18.10.2012 14:26

Согласен. Тоже пользуюсь вторым, даже если сущность — вполне самостоятельная триада MVC.
Тут есть еще момент, связанный с именованием. Если мы распихиваем каждую триаду в свой пакет, то по логике вещей должны называть их domen.projects.blablabla.screenKeyboard.View и т.п. Таким образом при сборке, где-нибудь в основном Вью у нас будет пять-десять классов с именем View — как-то не фонтан. Гораздо приятней выглядит именование domen.projects.blablabla.views.ScreenKeyboardView. Если же совмещать, то масло масляное: domen.projects.blablabla.screenKeyboard.ScreenKeyboardView
Ну это так.. один из доводов. Если сущности реюзабельные, и вы надеетесь использовать их в других проектах, то наверно есть смысл в первом подходе.

in4core 18.10.2012 16:39

Цитата:

domen.projects.blablabla.views.ScreenKeyboardView
Помоему так большинство и пишут , другие варианты избыточны. Причем в точь точь , как написал wolsh

Art_133 19.10.2012 09:02

Использую первый вариант, но классы не называю просто View.
Структура примерно такая:
Код AS3:

app.main.mvc.c.ControllerMain. 
app.main.mvc.v.ViewMain.
app.main.mvc.m.ModelMain.
...
app.main.somecomponent.mvc...

Удобно работать с отдельными модулями приложения. Все в одном месте. Ведь каждый комплнент mvc может содержать не только 3 класса. В папке с вью могут быть скины и другие визуальные модули, которые относятся к данному mvc компоненту.

Wolsh 19.10.2012 09:47

Да. Тут как раз вскрывается парадокс MVC.
С одной стороны, триада MVC какой-либо сущности с точки зрения ООП составляет вполне самостоятельный Объект, со своей четко абстрагированной ответственностью, инкапсуляцией и т.д.
С другой стороны парадокс: основная парадигма самого MVC состоит как раз в независимости частей друг от друга, в отсутствии жесткой связанности, возможности замены вьюшек и контроллеров. Что так же полностью соответствует ООП, но делает требование складывать всю триаду в один пакет необязательным.
Art_133, а в пакете Main есть еще что-то кроме пакета mvc? И зачем нужны подпакеты m, v и с — в них более одного класса? Если бы классы ControllerMain, ViewMain и ModelMain лежали в пакете mvcMain, это вызвало бы затруднения? Как по мне, такая структура дважды избыточна.

Art_133 19.10.2012 13:02

1. В пакете Main есть что-то кроме mvc. Другие компоненты.
2. В подпакетах m v с может быть несколько классов.


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

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