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

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

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

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
http://outcoldman.ru/ru/blog/show/184
http://rsdn.ru/article/patterns/ModelViewPresenter.xml
http://msdn.microsoft.com/ru-ru/magazine/dd419663.aspx
http://www.martinfowler.com/eaaDev/P...tionModel.html
http://blogs.adobe.com/paulw/archive...tion_pa_3.html
http://examples.pmwilliams.co.uk/ado...tionModel.html (сырцы по правой кнопке)
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 12.04.2012 в 19:03.
Старый 12.04.2012, 19:17
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 12  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Котяра респект, думаю многим полезно будет почитать.
Теперь понятно , что такое MVP , однако пока непонятно, что если модель может менять вид и контроллер может менять вид, тогда как назвать такой шаблон ? Пропорции изменения не важны, просто ради факта интересно.
Ну и про 2 модели в виде, передача через конструктор, нормально? ты так делаешь бывает?
__________________
Марк Tween

Старый 12.04.2012, 19:25
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 13  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Цитата:
если модель может менять вид и контроллер может менять вид, тогда как назвать такой шаблон ?
паттерн - быдлокод.
Цитата:
если модель может менять вид
не может. модель может только сообщать о своём изменении. как таковых ссылок на виды и контроллеры она не имеет (только опосредованно через подписку на события)
Цитата:
про 2 модели в виде, передача через конструктор, нормально?
нет просто ссылкой.
например у вида есть 2 модели
camera и coordinates
просто по ссылке устанавливать при создании вида.
Код AS3:
var view = new View();
view.camera = camera;
view.coordinates = getViewCoordinatesById(id);
Я вообще последнее время стараюсь делать конструкторы без параметров.
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 12.04.2012 в 19:30.
Старый 12.04.2012, 19:38
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 14  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
а еще бывают
PAC Presentation-Abstraction-Control
MVVM Model-View-ViewModel
MVCS Model-View-Control-Service
VCLSD View-Control-Logic-Service-Data
__________________
Хороший отдых - половина работы.

Старый 12.04.2012, 19:40
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 15  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
http://www.flasher.ru/forum/showthread.php?t=173879
Где ж вы все были когда я этот вопрос поднимал?
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
если модель может менять вид и контроллер может менять вид, тогда как назвать такой шаблон ?
паттерн - быдлокод.
Цитата:
если модель может менять вид
не может. модель может только сообщать о своём изменении. как таковых ссылок на виды и контроллеры она не имеет (только опосредованно через подписку на события)
Ты меня видимо не понял, я как раз имел ввиду под модель меняет вид, это значит, что диспатчит событие для вида о своем изменении.

Тоесть архитектра такая :
Controller can :
- view.update(vars)
- view.addEventListener
- model.var = someVar
Реализация MVP - как выходит.
А вот как назвать такой паттерн :
Все тоже как в примере выше, но есть еще и
view can :
model.addEventListener
model can :
dispatchEvent

Тоесть все в скупе
__________________
Марк Tween

Старый 12.04.2012, 20:29
artcraft вне форума Посмотреть профиль Отправить личное сообщение для artcraft Посетить домашнюю страницу artcraft Найти все сообщения от artcraft
  № 17  
Ответить с цитированием
artcraft
 
Аватар для artcraft

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
если взять MVP и добавить в него право View читать модель
то это разрушит всю красоту идеи

MVP это элегантная трёхэтажная конструкция а не "порочный" замкнутый круг как в классическом MVC

выгода МVP в простоте отладки и тестирования
и ценой за это является именно отсутствие прямого доступа вьюхи к модели


что получится если взять птицу и приделать ей две пары копыт от коровы?
монстр!

Добавлено через 25 минут
Цитата:
Сообщение от in4core Посмотреть сообщение
Нету класического и не класического МВС
MVP и есть не классический МVC
Мне кажется его назвали MVP а не MPV или VPM именно в честь MVC

Добавлено через 47 минут
Напишу подробнее о "Порочном круге"

представьте себе программу из одного тумблера, вот такого:


1. пользователь нажал включить
2. контроллер записал в модель - включено
3. модель рапортовала - произошли изменения
4. вью выставил положение компонента во включено
5. выключатель сообщил контроллеру что он теперь включен
6. см пункт 2

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


Последний раз редактировалось artcraft; 12.04.2012 в 20:56.
Старый 12.04.2012, 22:16
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 18  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
1. пользователь нажал включить
2. контроллер записал в модель - включено
3. модель рапортовала - произошли изменения
4. вью выставил положение компонента во включено
5. выключатель сообщил контроллеру что он теперь включен
6. см пункт 2
Так кто же говорит о том, что нужно создавать такие круги? Разговор шел о конкретных мини реализациях методов.

Смотри, есть у нас допустим имя игрока в игре, это имя неизменно, значение имени получаем с сервера. Получили, записали в модель, модель оповестила вью - имя начертилось, либо другой вариант, записали в модель, на всякий случай для хранения, но обновили вид прям из контроллера.
Другая ситуация , баланс игрока. Может допустим меняться постоянно, но и значение его тоже нам нужно держать в памяти. Опять же по приходу данных мы можем писать в модель и обновлять вид из контрола, а может диспатчить из модели. Тоесть по сути разницы принципиальной никакой. Но в какой то определенный момент, в виде нам требуется узнать эту переменную, значит ссылку на модель иметь надо.
Единсвтенное что из всего этого понятно :
Мвс может быть реализован 2 разными методами - обновление вида через модель, и обновление вида через контролл. Причем разницы принципиальной между ними нет, но если использовать сразу 2 принципа, в голове и коде будет каша, поэтому лучше ограничится одним.
Мвп - сначала котяра сообщил, что о том что я говорю это МВП, затем прочитав статью стало понятно, что в МВП - вид не имеет ссылку на модель, но в этом случае жутко неудобно запускать механизм - * контрол дай мне занчение модели * , поэтому собственно не понятно, почему паттерн живет.
___________________________________________________________________________________
Так что вывод таков использовать кастомный МВС, что собственно я и делал, до создания темы

Controller - getData, setModelData , view.update(modelData or parsed_ModelData);
Model - setData
View - call to Controller

Либо

Controller - getData, setModelData
Model - setData , call to View
View - call to Controller , getEventFromModel , updateMethods by changing model
__________________
Марк Tween

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

блогер
Регистрация: Aug 2005
Адрес: www.artcraft.cz
Сообщений: 1,967
Записей в блоге: 6
Отправить сообщение для artcraft с помощью ICQ
можно всё что угодно, хоть в один класс всё положить, хоть все методы статическими сделать,
и будет работать, но только это будет не по фэн-шую и поток ци будет протекать через ваш код в неправильном направлении, а это чревато, когда фундаментальная субстанция не на вашей стороне.
__________________
Хороший отдых - половина работы.

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Цитата:
Так что вывод таков использовать кастомный МВС, что собственно я и делал, до создания темы
Ты нахрена тему поднимал?
Я дважды задавал один и тот же вопрос. (это третий)
Ты его дважды проигнорил.

Сам вопрос задал, сам на него отвеитил. Люди тоже ответили. Из кучи ответов выбрал только тот который "совпадал"(на самом деле не совпадал, а просто был похож) с твоим собственным мнение. Утвердился в своей правоте, остался доволен.

Пацан к успеху шел.
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

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

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


 


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


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