Тема: Хорошее MVC
Показать сообщение отдельно
Старый 29.10.2014, 22:40
Gerbert вне форума Посмотреть профиль Найти все сообщения от Gerbert
  № 611  
Ответить с цитированием
Gerbert
Banned

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

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

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

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

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

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