|
|
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
Планирую написать 3d-редактор. Технологии C++, winAPI (без ATL, MFC и т.д). Кода, думаю, будет много. Поэтому решил, стоя на берегу, так сказать, продумать архитектуру. Интересует интерпретация паттерна MVC применительно к winAPI. Как вижу это я: Контроллер : в нем находится основной цикл. В контроллере производится преобразование windows сообщений в платформонезависимые типы данных. Он посылает данные различным моделям. Думаю ввести некий ControllerModel - будет отвечать за то, на какие конкретно модели необходимо действовать. Контроллер зависит только от моделей и ничего не знает про Вид-ы. Модель - логика. Есть одна независимая модель, я ее называю EditorLogic - состояние и логика редактора, и есть побочные модели - они связывают Вид-ы с EditorLogic. В принципе, с каждым Видом связана определенная Модель. Вид отвечает за отображение. Знает о своей модели. У кого нибудь был подобный опыт? Может есть какие-нибудь открытые проекты. Не хочется наступать на грабли в процессе разработки. Буду рад любым соображениям по этой теме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2016, 21:51 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
Какой ужас. Парень. Ну если ты решил рисовать диаграммы то возьми себе нормальный UML редактор. Надо уметь красиво оформлять документацию. Это часть культуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2016, 21:54 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
k-payl, от winapi здесь только приём движений мыши и кнопок на клавиатуре. (ну создание окна и инициализация OpenGL/Direct3D) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2016, 22:06 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
k-paylМожет есть какие-нибудь открытые проекты.Исходники WinForms, WPF, VCL и т. п. доступны. Можно посмотреть как сделано в них. На первый взгляд: обычно базовый класс View содержит виртуальный метод WndProc, принимающий все сообщения для данного окна. Даже если не планируется строить View вокруг WinAPI-окна, то всё равно лучше не "нарушать традиций". Ну и в терминологии немного напутано. Обычно так: 1. Controller или Presenter или ViewModel - содержит логику представления, является "переходником" между View и Model. 2. Model - содержит прикладную логику, не зависящую от View. 3. View - отвечает за визуализацию и события UI. 4. Application - содержит цикл обработки сообщений, должен мочь отправлять пойманные сообщения в WndProc соответствующей View. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 09:16 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
k-payl, почему именно MVC, а не FRP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 09:59 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
k-paylПланирую написать 3d-редактор. Технологии C++, winAPI (без ATL, MFC и т.д). Кода, думаю, будет много. Поэтому решил, стоя на берегу, так сказать, продумать архитектуру. Интересует интерпретация паттерна MVC применительно к winAPI. Её там просто нету. k-paylКак вижу это я: Контроллер : в нем находится основной цикл. В контроллере производится преобразование windows сообщений в платформонезависимые типы данных. Он посылает данные различным моделям. Думаю ввести некий ControllerModel - будет отвечать за то, на какие конкретно модели необходимо действовать. Контроллер зависит только от моделей и ничего не знает про Вид-ы. Модель - логика. Есть одна независимая модель, я ее называю EditorLogic - состояние и логика редактора, и есть побочные модели - они связывают Вид-ы с EditorLogic. В принципе, с каждым Видом связана определенная Модель. Вид отвечает за отображение. Знает о своей модели. У кого нибудь был подобный опыт? Может есть какие-нибудь открытые проекты. Не хочется наступать на грабли в процессе разработки. Буду рад любым соображениям по этой теме. Как бы controller из MVC уже давно не нужен. Его функции выполняют GUI-виджеты и комманды, которые они посылают. Остальное у тебя -- либо каша в голове, либо лучи гениального ума. Что конкретно -- понять сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2016, 17:17 |
|
||
|
winAPI и паттерн MVC
|
|||
|---|---|---|---|
|
#18+
MasterZivk-paylПланирую написать 3d-редактор. Технологии C++, winAPI (без ATL, MFC и т.д). Кода, думаю, будет много. Поэтому решил, стоя на берегу, так сказать, продумать архитектуру. Интересует интерпретация паттерна MVC применительно к winAPI. Её там просто нету. k-paylКак вижу это я: Контроллер : в нем находится основной цикл. В контроллере производится преобразование windows сообщений в платформонезависимые типы данных. Он посылает данные различным моделям. Думаю ввести некий ControllerModel - будет отвечать за то, на какие конкретно модели необходимо действовать. Контроллер зависит только от моделей и ничего не знает про Вид-ы. Модель - логика. Есть одна независимая модель, я ее называю EditorLogic - состояние и логика редактора, и есть побочные модели - они связывают Вид-ы с EditorLogic. В принципе, с каждым Видом связана определенная Модель. Вид отвечает за отображение. Знает о своей модели. У кого нибудь был подобный опыт? Может есть какие-нибудь открытые проекты. Не хочется наступать на грабли в процессе разработки. Буду рад любым соображениям по этой теме. Как бы controller из MVC уже давно не нужен. Его функции выполняют GUI-виджеты и комманды, которые они посылают. Остальное у тебя -- либо каша в голове, либо лучи гениального ума. Что конкретно -- понять сложно. Интересная мысль. Я кстати тоже последнее время начал замечать, что у меня контроллеры становятся всё меньше и меньше в объёме. (пишу на фреймворке Yii - php) Сначала начал замечать, что большая часть из того, что раньше было в контроллере начало перекочёвывать в отдельные компоненты или виджеты, а потом ещё больше из них перекочевало в сами модели, которые теперь зачастую работают друг с другом. В редких случаях, если им не положено знать друг о друге (для разборности системы на независимые автономные части, а нужные модели лежат в разных модулях) для них создаётся компонент, который дружит их функционалы. Сейчас проектирую одну относительно большую систему (не просто сайт, а сервис из множества компонентов) и понемногу прихожу к выводу, что при её, как мне кажется, идеальной структуре, контроллеры становятся лишними и в некотором смысле даже мешают отделению GUI от логики находясь на грани и того и другого. По сути их задача сводится к "В каком формате отдать? а, в json? ну держи json... А тебе в чём? в html обёртке? ... держи html". Разумеется с этой задачей справился бы банальный компонент, который в зависимости от запрошенного формата приводил бы данные к нужному виду. Увидим что выйдет, когда я приступлю всё же к реализации (когда полностью спроектирую то что должно получиться)... но вполне может быть, что у меня контроллеры в итоге останутся пустышками (враперами для вызова реального функционала), просто что бы система была совместима с другими решениями на yii и расширениями. Жаль пока мало что о правильном проектировании знаю.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.10.2016, 03:42 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39332239&tid=1340586]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
70ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 227ms |
| total: | 382ms |

| 0 / 0 |
