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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.10.2014, 20:30
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 1  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
А зачем модель хранит вью в себе? Потом ещё DO начнут удалятся child.parent.removeChild( this ) и после останется только головой с разбегу об стену ударится, чтобы забыть такое))

Старый 29.10.2014, 20:45
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 2  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
модель удалит объект вьюшки из своей коллекции и передаст вьюшке по обновлению displayObject для удаления. Модель хранит вьюшки для того, чтобы ими можно было управлять через контроллер холста из любого участка приложения.

Старый 29.10.2014, 20:48
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 3  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
Я могу только посоветовать прочесть эту и все другие статьи и темы на форуме.

Старый 29.10.2014, 21:42
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 4  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
Нет, согласен, что логично хранить все вьюшки инструментов во вьюшке холста, но тогда придется во вьюшку холста кидать ссылки на другие вьюшки, которые будут ей сообщать, что-то сделать с тек . инструментом. Например у меня есть инструмент "Полигон" его можно удалять, накладывать фильтры, резать, ломать, кусать с абсолютно разных меню и что мне во вьюшке холста хранить ссылки на вьюшки, которые будут сообщать о модификации тек. инструмента?

Старый 29.10.2014, 22:40
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 5  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
Нет! Логичней хранить инструменты в виде, который представляет программу.

Вам нужно забыть все, что вы напридумавали и на минутку закрыть глаза и расслабиться.
И представить, что Вы разрабатываете графический редактор и чтобы Вам было легче,
Вы решили сделать это при помощи mvc.

Теперь вы должны вынести в отдельный угол своего сознания ЛОГИКУ,
которая очень важна для работы приложения. Вы начинаете словно в бреду перечислять
всё ранее Вами придумано и в первую очередь называет самые, как Вам кажется, "отпадные фишечки" Ваше редактора - полигон, линейка, ластик и конечно же, ну конечно же фильтры. И вот в предвкушения всех лавров которые на Вас снизойдут, спуститесь на землю и подумайте, если вдруг Ваш кот сотрет одну из этих инструментов, то будет ли работать Ваше приложение в целом?
Вот если оно перестанет правильно функционировать, то это логика, а если нет, то это всего лишь "декор", который в модели не нужен вовсе.

А задумка поместить отображение в модель, это вообще полная mvc-ересь.

Добавлено через 11 минут
И добавлю - Ваши инструменты, это всего лишь иконки и несколько строк кода для манипуляции с bitmapData,
по на них не стоит зацикливаться. Графический редактор, а точнее отображение, должно быть реализовано
через паттерн "состояния" где есть интерфейс IDraw ( я не умею писать так по английски ) с методами -
draw() это для всех рисовалок и IFilter c методом apply. И должна быть коллекция реализующая эти интерфейсы.
И об рисовании и применениях фильтров вообще нет смысла знать в модели. Я даже сомневаюсь, что данные для отката шагов нужно в модель записывать.

Добавлено через 27 минут
Сложно даже придумать, для чего нужна модель. Здесь состояние, коллекция, итератор, медиатор, представление, возможно еще что-то типа контроллера-презентер..
Хотя можно забить на все и сделать из mvc state machine, сделав из модели селектор..
Может более опытные направят, но я больше не знаю что сказать. Mvc тут только для переключения каких-то окошек-вкладок...

Старый 30.10.2014, 00:26
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ого, а тема-то живёт, оказывается. Ну надо же

Старый 30.10.2014, 10:30
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 7  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от etc Посмотреть сообщение
Ого, а тема-то живёт, оказывается. Ну надо же
Да. С течением времени у меня ускользнула та мысль, ради которой голосовали за толстый контроллер и тупую модель.

Старый 30.10.2014, 16:08
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 8  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
Gerbert,
То есть вы хотите сказать, что mvc не подходит для граф. редактора и необходимо всю структуру перепроектировать?
У меня есть пдф-ка "Шаблон проектирования графического редактора" А.В. Шлиткин. так там такое определение: "графический редактор представляет собой модель и операции по изменению модели." Ещё: "В самом общем виде графический редактор имеет модель данных и графический интерфейс,
а поэтому к нему применима модель MVC2. MVC2 модели соответствует Model. MVC2 контроллеру — Tool. MVC2 View — Visualizer и Canva". Блин, кому верить тогда? Я теперь запутался...
etc
Цитата:
Ого, а тема-то живёт, оказывается. Ну надо же
для меня эта тема о mvc лучшая в инете.

Старый 30.10.2014, 17:27
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 9  
Ответить с цитированием
Gerbert
Banned

Регистрация: Aug 2014
Сообщений: 461
Я хочу сказать, что мы говорим о разном, я об том, что представлению не место в модели,
а Вы о том, что правильно ли использовать mvc при создании рисовалки.

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

Старый 30.10.2014, 18:21
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 10  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
Я прочитал данную тему раз 5, но никто не делал и не даст абсолютно правильного решения. Мой опыт mvc крайне мал и получен от данной темы, но я никогда не хранил представление в модели, а только лишь id-объектов представления. Я лишь защищал возможность модели крикнуть состояние "удаление" для представления, чтобы оно взяло тек. id у модели и удалило дочернее представление. Да, у нас модель как бы не обновляется, то есть все значения остаются прежними, она лишь сигнализирует о своём тек. состоянии своей вьюшке. Таким образом две независимые вьюшки смогли сработаться через контроллер и модель. Да, логика модели как бы нарушается, она не должна говорить вьюшке что ей делать, её вообще не должно касаться, что вьюшки будут делать с данными. Но как сделать по-другому, не нарушая логику mvc?
Я СОГЛАСЕН, что НАРУШАЮ MVC.
Давайте оставим граф. редактор в покое и возьмём квадратики и кружочки, которые можно удалять и добавлять на сцену, как бы вы спроектировали mvc, поделитесь опытом, пожалуйста.

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

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

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


 


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


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