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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 29.10.2014, 22:40
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 611  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

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

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

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

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

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

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

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

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

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

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

Старый 30.10.2014, 16:08
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 614  
Ответить с цитированием
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
  № 615  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

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

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

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

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

Старый 30.10.2014, 19:18
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 617  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Цитата:
Мой опыт mvc крайне мал и получен от данной темы, но я никогда не хранил представление в модели, а только лишь id-объектов представления.
Вы не помните того, что говорили вчера?
Цитата:
Сообщение от lammer.Ok Посмотреть сообщение
модель удалит объект вьюшки из своей коллекции и передаст вьюшке по обновлению displayObject для удаления. Модель хранит вьюшки для того, чтобы ими можно было управлять через контроллер холста из любого участка приложения.
Цитата:
Я прочитал данную тему раз 5
Если мы выяснили, что Вы не помните вчерашние слова, а мы это выяснили,
то значит Вам нужно в шестой и седьмой раз прочитать. А то я не понимаю, как Вам объяснять
если Вы вчера говорите о DO в модели и я целый вечер Вам объясняю, что это фигня, а сегодня
Вы все отрицая, просите объяснить что-то другое.

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

Регистрация: Nov 2012
Сообщений: 55
Я написал это не подумав, так делать нельзя, не сразу это понял. Но удаление представлений у меня идёт через тек. состояние модели, а вы также, на сколько я понял, такой способ не поддерживаете. Как же всё-таки поступать.

Старый 30.10.2014, 21:32
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 619  
Ответить с цитированием
Gerbert
Banned
[+1 06.12.14]
[+1 18.12.14]
[+1 30.12.14]

Регистрация: Aug 2014
Сообщений: 461
Посмотрите вот это и потом напишите здесь, является ли реализация из урока лучше Вашей или нет и потом уже можно будет продолжать.

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

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

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

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

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


 


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


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