Регистрация: Nov 2012
Сообщений: 55
|
Кто-нибудь помогите решить заморочку).
Я пишу средне-небольшой графический редактор, используя ест-но парадигму MVC. Спроектировал основную часть редактора и настал черед реализации графических инструментов. Так вот, начал я с инструмента "Линейка". Вид и функционал её прост: имеются 2 стрелки на обоих концах, которые можно тянуть в разные стороны и при этом считается длина от одного конца к другому, также её можно поворачивать на 90 градусов. Линеек в редакторе можно создавать бесконечное множество.
Ближе к заморочке.
Следуя MVC, я создал Модель, Контроллер и Вьюшку для данного инструмента. Вьюшка сообщает Контроллеру о том, что линейку тянут. Контроллер получает координаты конца линейки и говорит Модели просчитать новые координаты кончиков стрелок линейки, а также посчитать длину от одного конца к другому. Модель всё просчитывает и диспатчит событие об изменении. Вьюшка ловит событие от Модели, берёт у неё данные и рисует.
Как мы видим обязанности строго разделены между MVC. Модель содержит логику и данные, Вьюшка только отображает, а Контроллер руководит процессом.
Всё было бы хорошо, если бы меня не посетила мысль, а не слишком ли так заморачиваться и забивать память приложения хранением MVC для каждого экземпляра Линейки, да ещё и для такого мелкого инструмента, и, вообще есть ли смысл разделять на триаду данный инструмент. А также при событии движения мыши получается куча всплытий событий от вьюхи, контроллера и модели. Почему бы не превратить все это в MV, где Вьюшка возьмёт на себя роль контроллера и часть математических расчётов. Но тогда я получу не очень красивый код и разрушу идею канонического MVC.
Помогите кто-нить советом. Где я упоролся в данной случае?
Последний раз редактировалось lammer.Ok; 29.10.2014 в 02:57.
|