Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Двойная модель, перекрестный запрос без диспетчиризации, структура контрола (http://www.flasher.ru/forum/showthread.php?t=177980)

in4core 12.04.2012 13:28

Двойная модель, перекрестный запрос без диспетчиризации, структура контрола
 
Такая вот длинная тема :)
Парочка новых вопросов по МВС )
1. Если вид хочет держать несколько моделей, его конструктор выглядет так
Код AS3:

public function View(model1,model2,...modelN)

?
2. Нужна ли модель...
Собственно структура приложения :
Controller - > getData , model - > setData ( or not ) , view.updateByController(someData)
Тоесть вопрос звучит следующий : приходя данные с сервера в контрол, в 80% случаев это временные данные, которые не нужно записывать в модель, поэтому из контрола сразу запускаем метод вьюхи передавая туда данные.
Так вот вопрос, если в 80% случаев в модель ниче не пишем, нужна ли она вообще, если эти 20% можно сохранять в самом вью, передавая данные из контрола?
3. Так же интересует ситуация
Код AS3:

Controller :
model.data = getData;
view.update(model.data or getData)

Ведь в таком случае, можно отказаться от диспетчеризации модели совсем? Тоесть хочется узнать принципиальную разницу, и как лучше делать.
4. Хотелось бы узнать как вы пишите структуру со множеством вьюх и контролов. Я так пологаю :
Создается общий коонтрол : в нем создается общий вид и общая модель ( причем последнии 2 не обязательны ) , в нем так же создаются мини контролы, мини виды. В каждом мини контроле, возможны еще мини види и миниконтролы, все так ?

artcraft 12.04.2012 16:27

IMHO

1. если модели две то это будет уже не MVC
если уж очень хочется две модели то можно соорудить вложенную модель
2. вся прелесть MVC в том что view заменимый, по сути приложение должно продолжать нормально функционировать даже если, в данный момент, у него нету вью совсем, или наоборот есть больше чем один вид.
3. в классическом MVC, контроллер не должен управлять видом напрямую.
контроллер управляет моделью, модель оповещает вид, вид отражает состояние модели и дёргает контроллер когда пользователь что-то делает
4. в качестве примера может быть флекс фреймворк, каждый компонент это mvc, и при этом некоторые компоненты состоят из других компонентов, например скроллер содержит несколько кнопок

Добавлено через 13 минут
вот тут очень хорошо всё расписано про MVC

in4core 12.04.2012 18:10

Цитата:

1. если модели две то это будет уже не MVC
Это кто такое сказал? Мвс - это парадигма, а не четкое указание. Вид может работать со множеством моделей управляемых контроллером = это уж точно, а вот как оно организуется это вопрос другой, я предложил свой вариант, вот интересно, так делают или нет.
Цитата:

2. вся прелесть MVC в том что view заменимый, по сути приложение должно продолжать нормально функционировать даже если, в данный момент, у него нету вью совсем, или наоборот есть больше чем один вид.
Опять нет. Как может быть приложение без вида? Может да - на java сервере например. Но если приложение основывается на виде, флеш - это вид, а не логика в чистом виде.

Цитата:

3. в классическом MVC, контроллер не должен управлять видом напрямую.
см. п.1. Нету класического и не класического МВС
4. Понятно собственно , так я и думаю.

КорДум 12.04.2012 18:14

in4core,
Цитата:

1. если модели две то это будет уже не MVC
Поддерживаю. Вложенные модели — да. Две базовых модели — нет.
Цитата:

2. вся прелесть MVC в том что view заменимый, по сути приложение должно продолжать нормально функционировать даже если, в данный момент, у него нету вью совсем, или наоборот есть больше чем один вид.
Истинная правда. MVC специально отделяет всю логику от отображения.
Цитата:

3. в классическом MVC, контроллер не должен управлять видом напрямую.
Тоже верно. Однако люди как правило стараются адаптировать MVC под себя, внося в него всякие всякости.

Dukobpa3 12.04.2012 18:15

Цитата:

Это кто такое сказал?
Цитата:

Опять нет.
Цитата:

см. п.1. Нету класического и не класического МВС
Сам спросил, сам ответил, норм, че.
А что узнать то хотел?

И таки да, классическое МВЦ есть. Можно хотя бы вики открыть по этому поводу.
И мне глубоко пофигу на кол-во моделей у одной вьюхи, но всё-таки больше склоняюсь к тому чтобы наоборот у одной модели было несколько вьюх.
И да, часто сам отрисовываю данные не сохраняя их в модели, но в таком случае этот кусок не является парадигмой мвц, хотя вцелом и не мешает глобальной архитектуре. К примеру нафига мне в общей архитектуре учитывать всякие хинты и алерты, они могут стоять отстраненно.

in4core 12.04.2012 18:31

Цитата:

Сам спросил, сам ответил, норм, че.
:D

Цитата:

И таки да, классическое МВЦ есть.
Правильнее называть v.1.0 скорее) потому что этот паттерн придумал некий человек, а мы его под себя адаптируем.

Цитата:

Истинная правда. MVC специально отделяет всю логику от отображения.
Чей то ты санятка не в тему , я и не говорю, что логика должна быть в отображении. причем тут это вообще?!

Цитата:

И да, часто сам отрисовываю данные не сохраняя их в модели, но в таком случае этот кусок не является парадигмой мвц, хотя вцелом и не мешает глобальной архитектуре.
Значит я все верно понял, вполне нормальная практика.

Цитата:

Поддерживаю. Вложенные модели — да. Две базовых модели — нет.
Идейно чем отличается вложенная модель и основная от двух основных ? Все равно контроллер работает с этими моделями...пффф yao ming)
Да и зачем нужна вложенная когда можно просто сделать поля класса...

Цитата:

но всё-таки больше склоняюсь к тому чтобы наоборот у одной модели было несколько вьюх.
Так собственно я против ничего не имею, так же поддерживаю. Но ни раз было обсуждение на форуме, когда многие говорили - а если у вида много моделей?! - ( в каком контексте не важно, строчка была такой )

Dukobpa3 12.04.2012 18:33

Цитата:

Значит я все верно понял
Ага, ок.
Выхватил одну фразу из трех ответов, которая больше всего понравилась, и молодец.
фейспалм.жпг

Добавлено через 2 минуты
Тебе сюда: Хорошее МВЦ

КорДум 12.04.2012 18:45

Цитата:

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

Идейно чем отличается вложенная модель и основная от двух основных ?
Иерархической структурой и количеством передаваемых в конструкторы параметров.

Котяра 12.04.2012 18:46

То, что описывает in4core это скорее MVP, и да - это тоже MVC.
Моделей тоже может быть сколько угодно
Контроллер может управлять видами. Я так делал рендереры. Раз в кадр рендерер читает модель и если она поменялась даёт команды исошным вьюшкам перерисоваться или сам их перерисовывает. Другое дело, что рендерер является контроллером только по отношению вложенных видов, которые он рисует. Если смотреть ширее - это вид всей сцены.

in4core 12.04.2012 18:48

Цитата:

То, что описывает in4core это скорее MVP
Котяра расскажи подробнее, и если тебе не сложно ответь на мои вопросы заданные в теме, я думаю ты шаришь в этом хорошо


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

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