Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   MVC с точки зрения Флеша... (http://www.flasher.ru/forum/showthread.php?t=129351)

GFreemen 30.08.2009 22:58

MVC с точки зрения Флеша...
 
День добрый. помогите разобраться с MVC.
К примеру, есть главный спрайт - main, на нем кнопка, при нажатии на эту кнопку в него загружается класс-спрайт, назовем его forma. В нем куча текстовых полей, половина импут, половина нет. И две кнопки: "Принять" и "Отменить". При нажатии принять, должна быть проверка на заполнение Импут-полей, и, к примеру, если все Ок, запись из полей в стринги, если нет, то форма закрывается.
Объясните на таком примере, как все реализовать с точки зрения MVC.

ramshteks 30.08.2009 23:12

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

GFreemen 30.08.2009 23:18

теорию читал, как реализовать ее на практике во Флеше, не совсем понимаю.

ramshteks 30.08.2009 23:27

реализация на флеше ничем не отличается практически от реализации на других языках.

Felicast 30.08.2009 23:48

недавно читал про фреймворк PureMVC (тут документация по нему). очень помогает понять принципы MVC.
также можете почитать колина мука. у него тоже про паттерны хорошо написано

etc 31.08.2009 09:47

MVC не паттерн.

cauchy 31.08.2009 10:13

Вот тут неплохой пример простой есть:
http://spierala.wordpress.com/2008/1...c-example-as3/

Psycho Tiger 31.08.2009 11:03

Цитата:

Сообщение от etc (Сообщение 846933)
MVC не паттерн.

Вики говорит, что это архитектура программирования, какие то сайты говорят что это шаблон (сие и есть паттерн?). Дак что это?
Всю сознательную жизнь думал что паттерн. :(

etc 31.08.2009 11:06

Цитата:

Сообщение от Psycho Tiger (Сообщение 846942)
Вики говорит, что это архитектура программирования, какие то сайты говорят что это шаблон (сие и есть паттерн?). Дак что это?
Всю сознательную жизнь думал что паттерн. :(

Архитектура.

Smrad 31.08.2009 11:20

Цитата:

Сообщение от Psycho Tiger (Сообщение 846942)
E]
Вики говорит, что это архитектура программирования, какие то сайты говорят что это шаблон (сие и есть паттерн?). Дак что это?
Всю сознательную жизнь думал что паттерн. :(

И паттерн и архитектура ;).

Котяра 31.08.2009 12:13

MVC - составной паттерн использующий (включающий) другие паттерны - например Наблюдатель (Observer), Синтглетон (Singlton), Фабрика, Комманда и многие другие, в зависимости от реализазации.

etc 31.08.2009 12:54

Цитата:

Сообщение от Котяра (Сообщение 846959)
MVC - составной паттерн использующий (включающий) другие паттерны - например Наблюдатель (Observer), Синтглетон (Singlton), Фабрика, Комманда и многие другие, в зависимости от реализазации.

Он может содержать, но не обязательно. Не паттерн.

BlooDHounD 31.08.2009 13:38

Котяра, любой паттерн по вашей логике составной.

Gaen 31.08.2009 16:21

Метапаттерн.

DarkLight 31.08.2009 16:53

Всю жизнь MVC называли комплексным/составным паттерном. То, что он на пару уровней абстракции выше, никак не влияет на именование.

Felicast 31.08.2009 16:56

Цитата:

Сообщение от etc (Сообщение 846933)
MVC не паттерн.

прочитал все посты выше и не заметил ни одного утверждения, что MVC - это паттерн

СлаваRa 31.08.2009 17:32

В вики: pattern - Шаблоны проектирования, в пункте 5.6 MVC - архитектура программного обеспечения

Котяра 31.08.2009 17:45

Цитата:

Сообщение от СлаваRa (Сообщение 847056)
В вики: pattern - Шаблоны проектирования, в пункте 5.6 MVC - архитектура программного обеспечения

Оттуда-же:
Цитата:

Model-view-controller (MVC, «Модель-представление-поведение», «Модель-представление-контроллер») — архитектура программного обеспечения, в которой модель данных приложения, пользовательский интерфейс и управляющая логика разделены на три отдельных компонента, так, что модификация одного из компонентов оказывает минимальное воздействие на другие компоненты.

Шаблон MVC позволяет разделить данные, представление и обработку действий пользователя на три отдельных компонента
Вообще само слово паттерн(=шаблон) подразумевает, некую абстрактную архитектуру или абстрактное описание действий.
И вообще :
Архитектура описанная каким-либо абстрактным образом и предназначенная для множествеенного использования = паттерн.

etc 31.08.2009 18:34

Шаблон — это то, что можно взять и понаделать на его основе него каких-нибудь однотипных плюшек. Типичный пример — Singleton, у которого есть псевдокод, на основе которого можно наклепать синглтонов на каком-нибудь языке. Или фабрика. Вполне конкретно и понятно.

У MVC же нет конкретных шаблонов, его можно реализовать совершенно разными способами и всё равно это будет MVC. Вы видели псевдокод MVC? Я не видел. Лишь только различные реализации, которые друг на друга не похожи настолько, чтобы можно было выделить псевдокод.

DarkLight 31.08.2009 18:54

Цитата:

У MVC же нет конкретных шаблонов, его можно реализовать совершенно разными способами и всё равно это будет MVC
Ох. Конечно, потому что это архитектурный шаблон, представляющий из себя схему взаимодействия элементов, с описанием требований к каждому из них. Уровень абстракции выше. Для примера, шаблоны применяют и на более низком уровне абстракции: http://www.ozon.ru/context/detail/id/3938906/ - здесь речь идет о детализации до уровня отдельных методов.
Цитата:

Шаблон — это то, что можно взять и понаделать на его основе него каких-нибудь однотипных плюшек.
Так и в этом случае. Взять, и четко раскидать что с чем должно взаимодействовать. Если я делаю план города, то способ укладки кирпичей меня не волнует, так как не тот уровень абстракции. Так и тут по аналогичной причине нет псевдокода

etc 31.08.2009 19:01

Цитата:

Сообщение от DarkLight (Сообщение 847086)
Взять, и четко раскидать что с чем должно взаимодействовать.

Это не шаблон. Это — архитектура. Проще говоря, шаблон = заготовка. Таковой у MVC нет. Расстановка объектов разного рода по трем углам — не есть заготовка.

DarkLight 31.08.2009 19:05

Цитата:

Проще говоря, шаблон = заготовка.
В данном случае мы используем шаблон как аналог слова Pattern
Цитата:

Pattern
- regular form: a regular or repetitive form, order, or arrangement
- design: a repeated decorative design, e.g. on fabric
- plan or model: a plan or model used as a guide for making something
Encarta World English Dictionary
Вот MVC - это как раз и есть "model used as a guide for making something" на уровне всего приложения.

etc 31.08.2009 19:12

Цитата:

Сообщение от DarkLight (Сообщение 847094)
Вот MVC - это как раз и есть "model used as a guide for making something" на уровне всего приложения.

Не разделяю. В английском можно всё под паттерн свести.

DarkLight 31.08.2009 19:16

Паттерном называют в Sun
http://java.sun.com/blueprints/patterns/MVC.html
и Microsoft
http://msdn.microsoft.com/en-us/library/ms978748.aspx
А также в тоннах литературы. Не вижу смысла "не разделять" общепринятную терминологию.

etc 31.08.2009 19:29

MVC если и шаблон, то с приставкой «архитектурный». Не иначе.

AL.exe 01.09.2009 03:13

Без обид, но, по-моему, спор уже сугубо религиозный.

BlooDHounD 01.09.2009 08:13

AL.exe, нормально-нормально ... в кое-то веки его затеял не дядька блуд, а модераторы :)

Nemo_c 01.09.2009 14:27

Опять MVC-срач начинается. Автор просил помочь разобраться. Давайте просто обменяемся ссылками на статьи и примеры кода MVC на AS3. А то пудрите мозги людям шаблон не шаблон, парадигма не парадигма, это монопенисуально на начальном этапе изучения MVC . Приходят потом устраиваться на работу с фобиями на шаблоны проектирования.
Для затравки
http://ntt.cc/category/programming/r...esign-patterns
http://www.duromedia.com/blog/read/6...actionscript-3
http://www.soundstep.com/blog/
http://flash-ripper.com/archives/002194.php
http://pure-mvc.org/doku.php/
http://www.ultrashock.com/forums/oop/

GFreemen 02.09.2009 08:25

2Nemo_c. Cпасибо, большое за понимание и помощь.
2All. Как только разберусь что же такое MVC и с чем его едят - сразу начну спорить паттерн это или не паттерн.

Division 02.09.2009 11:42

Раз уж зашёл разговор об MVC, то тоже спрошу.
Вот представим себе игру - несколько режимов, к примеру, меню, редактор, игра вид сверху, игра вид сбоку.
Как это на MVC выглядит? На каждый режим своя модель/представление/контроллер?

Nemo_c 02.09.2009 12:33

Division, одна модель и несколько представлений и контроллеров на каждый режим.

etc 02.09.2009 12:38

Цитата:

Сообщение от Division (Сообщение 847540)
Как это на MVC выглядит? На каждый режим своя модель/представление/контроллер?

Представление меняется, модель нет. Контроллер — в зависимости от ситуации.

Division 02.09.2009 12:54

То есть в итоге получится один большой класс с моделью, которая управляет всеми режимами? Что-то делают, чтобы класс модели не стал слишком громоздким?

cauchy 02.09.2009 13:03

Управляют контроллеры, модель не управляет насколько я понял.

Nemo_c 02.09.2009 13:12

Division, что бы не было большого класса модель декомпозируют например так
http://npacemo.com/wordpress/wp-cont...al-diagram.jpg

вот более конкретный пример. http://www.as3dp.com/wp-content/uplo...diagram2-1.jpg

CrazyCoder 02.09.2009 20:07

Цитата:

Сообщение от Division (Сообщение 847540)
Раз уж зашёл разговор об MVC, то тоже спрошу.
Вот представим себе игру - несколько режимов, к примеру, меню, редактор, игра вид сверху, игра вид сбоку.
Как это на MVC выглядит? На каждый режим своя модель/представление/контроллер?

Вид сбоку и вид сверху - разные View одной модели.
Меню - Редактор - Игра - Стейтмашина. Она может или посылать event'ы в некое убер MVC предназначенное на все случаи жизни, либо некоторые состояния могут быть независимыми MVC. Ну т.е. задесь взяв стейтмашину и MVC - крутить до совпадания архитектуры с требованиями.

Меня вот больше интересуют примеры применения MVC для динамических игр, где персонаж имеет различные приёмы, может бегать, прыгать, падать.... Я примерно понял как работает библиотека pureMVC, но не вижу в ней какого-нибудь смысла для разработки не информационной системы (не сайт, не интрефейс к базе, не стратегия).


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

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