|
|
|||||
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 тут только для переключения каких-то окошек-вкладок... |
|
|||||
Et cetera
Регистрация: Sep 2002
Сообщений: 30,784
|
Ого, а тема-то живёт, оказывается. Ну надо же
|
|
|||||
блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
|
Да. С течением времени у меня ускользнула та мысль, ради которой голосовали за толстый контроллер и тупую модель.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Gerbert,
То есть вы хотите сказать, что mvc не подходит для граф. редактора и необходимо всю структуру перепроектировать? У меня есть пдф-ка "Шаблон проектирования графического редактора" А.В. Шлиткин. так там такое определение: "графический редактор представляет собой модель и операции по изменению модели." Ещё: "В самом общем виде графический редактор имеет модель данных и графический интерфейс, а поэтому к нему применима модель MVC2. MVC2 модели соответствует Model. MVC2 контроллеру — Tool. MVC2 View — Visualizer и Canva". Блин, кому верить тогда? Я теперь запутался... etc Цитата:
|
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Я хочу сказать, что мы говорим о разном, я об том, что представлению не место в модели,
а Вы о том, что правильно ли использовать mvc при создании рисовалки. Шлиткина я не знаю и не могу сказать, прав он или нет.. Вы не понимаете очевидностей, которые разбираются на микрокусочки в это теме и в темах на форуме и объяснять Вам что-то до полного их прочтения, бестолку, потому что придется заново писать уже написанное. По этому, прочтите их, а потом уже спрашивайте. |
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Я прочитал данную тему раз 5, но никто не делал и не даст абсолютно правильного решения. Мой опыт mvc крайне мал и получен от данной темы, но я никогда не хранил представление в модели, а только лишь id-объектов представления. Я лишь защищал возможность модели крикнуть состояние "удаление" для представления, чтобы оно взяло тек. id у модели и удалило дочернее представление. Да, у нас модель как бы не обновляется, то есть все значения остаются прежними, она лишь сигнализирует о своём тек. состоянии своей вьюшке. Таким образом две независимые вьюшки смогли сработаться через контроллер и модель. Да, логика модели как бы нарушается, она не должна говорить вьюшке что ей делать, её вообще не должно касаться, что вьюшки будут делать с данными. Но как сделать по-другому, не нарушая логику mvc?
Я СОГЛАСЕН, что НАРУШАЮ MVC. Давайте оставим граф. редактор в покое и возьмём квадратики и кружочки, которые можно удалять и добавлять на сцену, как бы вы спроектировали mvc, поделитесь опытом, пожалуйста. |
|
|||||
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Цитата:
Цитата:
Цитата:
то значит Вам нужно в шестой и седьмой раз прочитать. А то я не понимаю, как Вам объяснять если Вы вчера говорите о DO в модели и я целый вечер Вам объясняю, что это фигня, а сегодня Вы все отрицая, просите объяснить что-то другое. |
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Я написал это не подумав, так делать нельзя, не сразу это понял. Но удаление представлений у меня идёт через тек. состояние модели, а вы также, на сколько я понял, такой способ не поддерживаете. Как же всё-таки поступать.
|
|
|||||
Регистрация: Nov 2012
Сообщений: 55
|
Ну очевидно, что так удобнее использовать графические инструменты. Но не ясно, где хранить нарисованные объекты(любой объект можно перетаскивать на сцене), кто их будет хранить, удалять, добавлять, слушать их события и тд.
|
Часовой пояс GMT +4, время: 15:23. |
|
« Предыдущая тема | Следующая тема » |
|
|