Russian Qt Forum

Программирование => Общий => Тема начата: Кусай от Январь 30, 2011, 13:52



Название: Правильная ли архитектура?
Отправлено: Кусай от Январь 30, 2011, 13:52
(http://i066.radikal.ru/1101/a2/9660e6c2fb9c.jpg)

Собственно, model - описание модели. Имеет методы, через которые получает команды от контроллера и методы, которые передают нужную информацию для отрисовки.
Controller - ловит нажатия клавиш/мышь и срабатывания таймера, и изменяет состояние модели
View - с помощью геторов модели получает нужную информацию и рисует.
В main() создается экземпляр модели; главное окно, перехватывающее нажатия клавиш и мышь; создается таймер.
main() подключает к себе контроллер, отображение и автоматически саму модель. для контроллера и отображения он передает указатели на данные.
Широкие стрелки - от того ЧТО подключается, к тому К ЧЕМУ подключается.

Модель адекватна?


Название: Re: Правильная ли архитектура?
Отправлено: Denjs от Январь 30, 2011, 14:23
вы UML  (http://ru.wikipedia.org/wiki/UML)в принципе не любите, да?  ;D

Цитировать
Модель адекватна?
Адекватна... чему?
некое описание модели я вижу. Задачу, сферу применения - нет.

Для ориентира/примера - момимо шаблонов проектирования (http://ru.wikipedia.org/wiki/%D0%A8%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B_%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F) и описания MVC в той-же википедии (http://ru.wikipedia.org/wiki/MVC), почитайте Assistant о том как например в QT реализована Модель + (Вид+Контроллер).  (например  где то там говорилось что "Вид"+"Контроллер" в Qt "сведены вместе"...)
не уверен, но похоже начать можно со статьи Ассистанта "Model/View Programming (http://doc.trolltech.com/4.7/model-view-programming.html)".


Название: Re: Правильная ли архитектура?
Отправлено: Igors от Январь 30, 2011, 14:46
Не очень верится что Controller никак не зависит от View - нажатия клавиш и мыша обычно имеют смысл в контексте UI (а не сами по себе)


Название: Re: Правильная ли архитектура?
Отправлено: Denjs от Январь 30, 2011, 15:00
почему бы и нет? ))) зависит же от задачи.
В QT это так (контроллер+вид = вместе. )
а вот для другой области - скажем веб-сервисы или не десктопное гуи-приложение - то у нас вполне себе могут быть разные функции и классы для получения некого отображения (например "отчет" - как некий "срез" какой-либо многомерной модели с цифрами) и функции/классы модификации модели.

Все же зависит от задачи, которую аффтор до сих пор не рассказал.

впрочем ладно... умолкаю пока аффтор не появится....


Название: Re: Правильная ли архитектура?
Отправлено: Igors от Январь 30, 2011, 19:38
а вот для другой области - скажем веб-сервисы или не десктопное гуи-приложение - то у нас вполне себе могут быть разные функции и классы для получения некого отображения (например "отчет" - как некий "срез" какой-либо многомерной модели с цифрами) и функции/классы модификации модели.
Согласен, но это случай довольно редкий

Еще вопрос(ик) - а как View узнает что ему надо обновиться/перерисоваться? По таймеру - ну вряд ли. Желание четко разделить модель/UI похвально, но то "в теории"