Тема: Хорошее MVC
Показать сообщение отдельно
Старый 29.10.2014, 02:47
lammer.Ok вне форума Посмотреть профиль Отправить личное сообщение для lammer.Ok Найти все сообщения от lammer.Ok
  № 590  
Ответить с цитированием
lammer.Ok

Регистрация: Nov 2012
Сообщений: 55
Кто-нибудь помогите решить заморочку).
Я пишу средне-небольшой графический редактор, используя ест-но парадигму MVC. Спроектировал основную часть редактора и настал черед реализации графических инструментов. Так вот, начал я с инструмента "Линейка". Вид и функционал её прост: имеются 2 стрелки на обоих концах, которые можно тянуть в разные стороны и при этом считается длина от одного конца к другому, также её можно поворачивать на 90 градусов. Линеек в редакторе можно создавать бесконечное множество.

Ближе к заморочке.
Следуя MVC, я создал Модель, Контроллер и Вьюшку для данного инструмента. Вьюшка сообщает Контроллеру о том, что линейку тянут. Контроллер получает координаты конца линейки и говорит Модели просчитать новые координаты кончиков стрелок линейки, а также посчитать длину от одного конца к другому. Модель всё просчитывает и диспатчит событие об изменении. Вьюшка ловит событие от Модели, берёт у неё данные и рисует.
Как мы видим обязанности строго разделены между MVC. Модель содержит логику и данные, Вьюшка только отображает, а Контроллер руководит процессом.
Всё было бы хорошо, если бы меня не посетила мысль, а не слишком ли так заморачиваться и забивать память приложения хранением MVC для каждого экземпляра Линейки, да ещё и для такого мелкого инструмента, и, вообще есть ли смысл разделять на триаду данный инструмент. А также при событии движения мыши получается куча всплытий событий от вьюхи, контроллера и модели. Почему бы не превратить все это в MV, где Вьюшка возьмёт на себя роль контроллера и часть математических расчётов. Но тогда я получу не очень красивый код и разрушу идею канонического MVC.
Помогите кто-нить советом. Где я упоролся в данной случае?


Последний раз редактировалось lammer.Ok; 29.10.2014 в 02:57.