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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 08.01.2011, 21:21
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 11  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
МВЦ это мировой заговор, не пытайтесь в него вникнуть, если вы не член ложи

Старый 08.01.2011, 21:25
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 12  
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
По поводу серверных приложений, мне тоже кажется что все должно обстоять несколько иначе.
Что обычно есть сервер? Это прежде всего модель. Теоретически, ну или в идеале, она полностью заменяет собой клиентскую модель через RPC систему. Типа тонкий клиент. В жизни это не работает – очень накладно получится и по нагрузки на сервер и по трафику. Соотвественно, имхо, логично сделать клиентскую «тонкую модель», которая кэширует какие то данные, получает команды, но вместо того, что бы исполнять(моделировать) у себя, делает запросы на сервер, получает ответ, на основе него модифицирует какие то данные(своего локального кэша), диспачит соответствующие события о изменениях.
При этом, кто бы не работал с моделью, ничего не заметит. Не важно, как работает модель, локально или через сеть, для клиета модели все работает так же.


2Хомяк: Я потому и задал вопрос, что пока не нашел никаких приемуществ MVC перед Docuemnt View like модели. Вот и решил разобраться. Или я чего то не понял, или MVC действительно просто модное слово (тока не бейте)
__________________
Искренне Ваш, Джек.

Старый 08.01.2011, 21:38
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 13  
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Всё очень просто.
Есть у Вас модель "игрок". У игрока есть координаты x,y, размер, количество здоровья. И скажем это главный игрок и его здоровье выводится под самим игроком, в левом верхнем углу экрана, да ещё где-нибудь по другому, например в процентах. При изменении здоровья надо обновить его во всех трёх местах, поэтому важно разделять данные модель-представление.
Управление же данными должен делать контроллер. Например, в случае прихода сообщения от сервера - кто должен это сообщение разбирать? Там сказано - "игрок а переместился в точку б". Это сообщение должно пройти через все модели чтобы найти игрока "а" и переместить его в "б"? Совсем некрасиво. Кто-то должен получить это самое сообщение. Кто-то один. А потом уже дёрнуть нужную модель. Конечно, можно сказать что этим должна заниматься "самая-главная-модель". Только в итоге и получается, что эта самая-главная-модель, управляя данными сама в конечном счете уже превращается по описанию в контроллер.
Или, например, нужно полностью изменить поведение для уже имеющегося объекта. У объекта есть вью и модель, а вот нужно создать дубликат, но совершенно с другим поведением. В случае с контроллером - берём чистый контроллер и пишем код там, с 0. С ясной головой, спокойно. Без контроллера - придётся наследоваться и придерживаться "старых" правил, которые были в базовом классе.

Старый 08.01.2011, 21:46
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 14  
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Цитата:
это сейчас не модно...
Не понимаю я таких высказываний в программировании.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 08.01.2011, 21:56
Хомяк вне форума Посмотреть профиль Отправить личное сообщение для Хомяк Найти все сообщения от Хомяк
  № 15  
Хомяк
[+1 24.11.10]
 
Аватар для Хомяк

Регистрация: Jun 2010
Сообщений: 280
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Всё очень просто...
Могу быть не прав, потому, что речь идет об абстрактных предметах и мы можем понимать их по разному. Но.

Сообщение от сервера должен получать запрашивающий.

Изменить поведение модели можно переопределив её "поведенческие" методы. Что мешает?
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему...

Старый 08.01.2011, 21:59
JackFromChaos вне форума Посмотреть профиль Отправить личное сообщение для JackFromChaos Найти все сообщения от JackFromChaos
  № 16  
JackFromChaos
 
Аватар для JackFromChaos

блогер
Регистрация: Jan 2008
Адрес: Донецк
Сообщений: 162
Записей в блоге: 2
Отправить сообщение для JackFromChaos с помощью Skype™
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Всё очень просто.
Есть у Вас модель "игрок". У игрока есть координаты x,y, размер, количество здоровья. И скажем это главный игрок и его здоровье выводится под самим игроком, в левом верхнем углу экрана, да ещё где-нибудь по другому, например в процентах. При изменении здоровья надо обновить его во всех трёх местах, поэтому важно разделять данные модель-представление.
Это понятно. Вопрос не в то, надо резделять данные и представление, или нет...
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Управление же данными должен делать контроллер. Например, в случае прихода сообщения от сервера - кто должен это сообщение разбирать? Там сказано - "игрок а переместился в точку б". Это сообщение должно пройти через все модели чтобы найти игрока "а" и переместить его в "б"? Совсем некрасиво. Кто-то должен получить это самое сообщение. Кто-то один. А потом уже дёрнуть нужную модель. Конечно, можно сказать что этим должна заниматься "самая-главная-модель". Только в итоге и получается, что эта самая-главная-модель, управляя данными сама в конечном счете уже превращается по описанию в контроллер.
Ну тут допустим пусть так. Хотя не так важно, как это назвать, контроллер или модель. Тем более, что в класической схеме контролер все таки прослойка между пользователем и моделью, а не между моделью и моделью(сервер/клиент).
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Или, например, нужно полностью изменить поведение для уже имеющегося объекта. У объекта есть вью и модель, а вот нужно создать дубликат, но совершенно с другим поведением. В случае с контроллером - берём чистый контроллер и пишем код там, с 0. С ясной головой, спокойно. Без контроллера - придётся наследоваться и придерживаться "старых" правил, которые были в базовом классе.
А это уже очень спорно.
Опять же, "бизнес-логика" внутри контролера, а не в самой модели - опять же уход от классической MVC.
И я прибываю в полной уверенности, что модель поведения модели, это исключительно прерогатива модели. Иначе мы получаем нет MVC, а MC/V/DB- при этом называя DB- моделью...

Добавлено через 7 минут
Логика, которая допустима на стороне контролера - это способы интерпретации действий пользователя в термины модели. Например, вплоть до размытия понятий игрока до понятия "абстрактного субъекта игровой модели".

Добавлено через 14 минут
Цитата из вики:
"Наиболее частые ошибки

Начинающие программисты (особенно в веб-программировании) очень часто трактуют архитектурную модель MVC совершенно неправильно. Они рассматривают Модель (Model) исключительно как совокупность функций и/или методов для доступа к данным, а Контроллер (Controller) как элемент системы, содержащий бизнес-логику. В результате код Моделей по факту является средством получения данных из СУБД, а Контроллер представляет собой типичный модуль, наполненный бизнес-логикой или скрипт в терминологии веб-программирования. В результате такого понимания MVC разработчики стали писать код, который известный в кругах Zend Framework сообщества разработчик Pádraic Brady охарактеризовал как ТТУК — «Толстые тупые уродливые контроллеры» (Fat Stupid Ugly Controllers)"
__________________
Искренне Ваш, Джек.

Старый 08.01.2011, 22:16
Хомяк вне форума Посмотреть профиль Отправить личное сообщение для Хомяк Найти все сообщения от Хомяк
  № 17  
Хомяк
[+1 24.11.10]
 
Аватар для Хомяк

Регистрация: Jun 2010
Сообщений: 280
Суть дела не в том, чтобы во что бы то не стало придерживаться MVC. МVC- это попытка разделить процессы программы: отображение, прерывание, данные. При этом организовав их взаимодействие как отдельных, самостоятельных сущностей.
__________________
Ведь я только всего и хочу, чтобы все всегда было по-моему...

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Сообщение от сервера должен получать запрашивающий.
Окошко для покупки вещи. Окошко должно получить информацию о том, что вещь куплена?
А если окошко говорит контроллеру, то все сообщения получает контроллер.

Цитата:
Тем более, что в класической схеме контролер все таки прослойка между пользователем и моделью, а не между моделью и моделью(сервер/клиент).
Модели сервера, базы данных и всё остальное клиента как-то совершенно не волнуют. Он отправляет запрос и получает ответ. Из базы данных, из мемкеша или вообще сгенерированный в рантайме - ему побоку.

"Поведение модели - пререгатива модели" вообще легко опровергается. На том же примере - объектов с координатами много, а как менять координаты модель не касается. Модель может изменять себя только на основании внешних команд. Это как "переместится из а в б за 2 секунды" - модель вполне может менять свои поля x,y эти 2 секунды.

Цитата:
Логика, которая допустима на стороне контролера - это способы интерпретации действий пользователя в термины модели.
Правильно. А какая ещё логика бывает? Пользователь ввёл текст - отправили в фильтр модели, обновили представление вместе с фильтром.
Только ещё сюда стоит добавить сервер.

Старый 08.01.2011, 22:19
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 19  
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Всё очень просто.
каждый зверь смотрит на этот мир сквозь призму своего вида ( не MVC)
ну и на хрен мне это мне мвц, подумал этот подвид этого подвида : я что встречусь когда-то с цивилизацией, которая, которых.., т.е. там все это внимательно?

Добавлено через 53 секунды
сори, ухожу..

Старый 08.01.2011, 22:23
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 20  
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Цитата:
Опять же, "бизнес-логика" внутри контролера, а не в самой модели - опять же уход от классической MVC
Все правильно, в классическом понимании MVC контроллер должен быть "тонким". Но все-таки я бы предложил относиться к паттерну проектирования без лишнего фанатизма. На текущий момент нет единой реализации MVC, с которой согласны все абсолютно.

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

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

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


 


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


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