![]() |
|
||||||||||
|
|||||
|
2 lammer.Ok
- mvc - это уровень архитектуры приложения, тащить его в реализацию рендера единственной вьюхи не стоит - вью тут достаточно для холста и панели инструментов, меню - я бы сделал модель холста, и в ней бы хранил все линейки (в том числе), а обновлятся модель будет и так на каждый тык - линейка простой класс, отрисовщик и дизайнер (который слушает клики на линейке и таскает её), дизайнер диспатчит сигналы-ивенты о изменениях в вью/медиатор (как и все остальные инструменты) |
|
|||||
|
Регистрация: Nov 2012
Сообщений: 55
|
Цитата:
Цитата:
|
|
|||||
|
- а если у вас будет 40 типов на холсте (линейки, круги, н-гоны, сетка, имажи, дравы ...) вы к каждому будет писать медиатор/вью? и каждый тип будет крутиться в ядре mvc тормозя отрисовку холста, а там обычно нужно ооооочень быстро рисовать.
- mvc это технология отделения данных от представления и еще на ней бюрократизация приложения, разложение по полочкам и папкам разных структурных элементов, в mvc это разделение решает взаимосвязь данных и их представление на клиенте. Это как уголовные дела по папкам в участке, дело = папка, но никому не приходит в голову заводить папку/дело на каждого участника инцидента. - неважно сколько рисуется в секунду объект, или сколько раз на экране, это глупо лепить медатор к кружочкам или квадратикам, даже если их сотни на холсте! - технически вью говорит что выбран допустим объект на холсте, медиатор или модель помечает текщим, а его удаление или еще какая команда обычно приходит из другой связки медиатор/вью где сидит кнопка удаления или еще какой элемент управления, модель удаляет объект -> кричит всем что данные сменились, вью холста ловит это и обновляет холст (пысы: в этой теме можно писать тонны текста, прям кладезь для демагогов) |
|
|||||
|
Регистрация: Nov 2012
Сообщений: 55
|
Цитата:
Цитата:
Цитата:
|
|
|||||
|
Цитата:
это я привык мухлевать напрямую в модель, а контроллеры использую только для важных моментов приложения (загрузка, запуск главного вида, сохранение/загрузка) |
|
|||||
|
Регистрация: Nov 2012
Сообщений: 55
|
Понял. Ну тогда всё очень даже логично вырисовывается + мне легко внедрить изменения структуры в приложение. Ещё хотел уточнить, у меня данные о линейке(размер, угол) и о всех других инструментах будут ещё выводиться в дополнительном информационном окне и неудобно без прослушивания модели инструмента отдавать данные в это окно. Можете что-то посоветовать?
|
|
|||||
|
"модель прослушивания модели"?
я делал бы просто, CanvasModel.onChange.add() (onSelect) , все желающие сидят на этом событии/сигнале, в том числе и ваше инфо окно, у всех инструментов есна должен быть интерфейс для снятия инфы ) или использовать существующий метод toString() |
|
|||||
|
Регистрация: Nov 2012
Сообщений: 55
|
Ага, тоже вариант. Но можно будет ещё подумать.
А так, спасибо большое, что помогли разобраться в проблеме. Вопросов больше нет ![]() |
|
|||||
|
Banned
[+1 06.12.14]
[+1 18.12.14] [+1 30.12.14] Регистрация: Aug 2014
Сообщений: 461
|
Цитата:
|
|
|||||
|
Регистрация: Nov 2012
Сообщений: 55
|
Вид диспатчит "удаление объекта", контроллер говорит модели "удалить объект", а модель сама возьмёт тек. выбранный объект и удалит.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 19:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|