Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Статьи (http://www.flasher.ru/forum/forumdisplay.php?f=101)
-   -   Хорошее MVC (http://www.flasher.ru/forum/showthread.php?t=138349)

Gerbert 29.10.2014 19:39

Удаление иконки или нарисованной шкалы?

Добавлено через 9 минут
Мне вообще кажется, что какую-то линейку нельзя рядом с mvc ставить.
В плане mvc можно рассматривать редактор для рисования, но не линейку.
Вам нужно подумать, что общего у всех инструментов. Вот я вижу, что выбрав линейку я НАЖИМАЮ и не отпускаю
кнопку мыши и передвигая инструмент РИСУЮ и затем ОТПУСТИВ прекращаю рисовать. Далее, взяв кисть я НАЖИМАЮ
и не отпускаю кнопку и передвигая инструмент РИСУЮ, после чего ОТПУСТИВ кнопку перестаю рисовать.
И мне кажется, что под этот алгоритм подходят все инструменты. И у них у всех общее, это СОСТОЯНИЯ.

Добавлено через 13 минут
И теперь нужно подумать, что именно здесь нужно модели...
Я нарисовал, я стер, я поставил фигурку.. Тут все делает вид и мне сложно представить,
куда втиснуть модель. Возможно модели можно поручить смену состояний у вида, но тут нужно подумать,
является ли состояние ЛОГИКОЙ приложения.

Добавлено через 15 минут
Вот если взять широкую кисть и нарисовать ей смайл, то как это повлияет на логику работы приложения,
относительно тонкой кисти?

lammer.Ok 29.10.2014 19:55

Gerbert
Я осознал свою ошибку, мне уже всё объяснили)

Gerbert 29.10.2014 19:55

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

Добавлено через 1 минуту
Я к тому, что модель не должна говорить виду, что нужно удалить то, что к логике не относится.

lammer.Ok 29.10.2014 20:04

Так модель виду ничего и не собирается говорить)

Gerbert 29.10.2014 20:09

Цитата:

модель удаляет объект -> кричит всем что данные сменились, вью холста ловит это и обновляет холст
Цитата:

Всё вроде бы выглядит логично, но почему событие удаления объекта не приходит в контроллер сцены и он не сообщает модели удалить объект?
Мне просто показалось, что вы обсуждаете диспатч из модели в представление, для удаления чего-то.

lammer.Ok 29.10.2014 20:22

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

Gerbert 29.10.2014 20:30

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

lammer.Ok 29.10.2014 20:45

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

Gerbert 29.10.2014 20:48

Я могу только посоветовать прочесть эту и все другие статьи и темы на форуме.

lammer.Ok 29.10.2014 21:42

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


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

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