|
|
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
Создается приложение, которое должно отражать данные структуированного файла и сохранять этот файл, если пользователь изменил какие-нибудь поля структур. Структуированный файл состоит из трех структур. Структуры созданы так, что один из членов первой структуры содержит указатель на вторую структуру, а один из членов второй структуры содержит указатель на третью структуру. Таким образом они связаны один ко многим. Но это не суть. Вопрос связан с выбором архитектуры для этого проекта. Сам проект должен быть реализован на VC++7.0(MFC). Как известно MFС поддерживает архитектуру "Документ\Представление". Наши идеи вот какие: 1.) Это будет приложение SDI; 2.) Вид (главный вид) связанный с главным фреймом приложения будет порожден от CFormView и для этого фрейма будет единственным. 3.) Приложение должно иметь три области разделенных сплитером. В первой области будут отражаться данный первой структуры, во второй второй и в третей третий. И все эти области должны находиться на CPropertyPage, а количество CPropertyPage должно равняться пяти. Таким образм пять вкладок каждая из которых делиться на три части двумя сплиттерами. Чтобы это реализовать мы решили на главном виде приложения создать пять вкладок, а на каждой из вкладок создать сначало один фрейм со статическим сплиттером и двумя видами от CFormView. Потом в этой же вкладке создать в левом виде еще один фрейм со сплиттером и двумя видами от CFormView. Таким образом у нас есть все представления для отображения данных в все фреймы их поддерживающие. Вопрос: Исходя из данной стуктуры приложения как наиболее эффективно применить к ней архитектуру MFC "Документ\Представление" и нужно ли это делать с точки зрения эффективности дальнейшей поддержки и сопровождения. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 12:34 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
а почему не взять решения по отображению/редактированию файлов XML. Там отже один ко многим, но куча всего накатанного и глобальными комитетами-совместимого. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 13:04 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
Хотелось бы использовать только возможности MFC не привлекая другие технологии, особенно возможность MFC с точки зрения проектирования архитектуры системы и физическом ее воплощении. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 13:20 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
KALAKOMХотелось бы использовать только возможности MFC не привлекая другие технологии, особенно возможность MFC с точки зрения проектирования архитектуры системы и физическом ее воплощении. Спасибо. а кто мешает? Смотри как там и делай на MFC, чтоб велосипеда не было для академических задачь, квадратных колёс и круглых окон. Исходников редакторов XML думаю счас навалом. IMHO- IMHO Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 13:24 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
KALAKOM....MFC "Документ\Представление" и нужно ли это делать с точки зрения эффективности дальнейшей поддержки и сопровождения.. Тут ведь такое дело.... Как трактовать понятие "документ" в Вашем случае... Это может быть и файл, может быть и одна структура, может быть и связка структур (а может строка - ХЗ). В зависимости от ентого "вид" может отображать по разному данную сущность. И в разных плоскостях... Дальше дело вкуса. По поводу поддержки и сопровождения - на мой взгляд зависит от правильно найденных сущностей в бизнес задачи, а не от того, какие Вы применили технологии. Пример... Если у Вас по задачи есть "стол для разделки тушки" - то у него вряд ли появиться глаза, уши и животный жир. Но такие весчи как "цвет стола" - не приведут к сильному изменению Вашей изначальной модели. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 15:41 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
В данном случае документ - это все данные, находящиеся в структурах. Но у нас не одно представление для того, чтобы данные этих структур, а именно данные документа, в нем отразились. У нас несколько представлений, а конкретно для каждой структуры свое представление и все они находяться на разных фреймах. Исходя из этого, можно предположить что в данном проекте должно находиться столько документов завязанных на один шаблон документа, сколько структур, а еще точнее представлений. Таким образом у нас появляется нормальная связка для каждой структуры: Документ - Фрейм -Представление. Но по моему - это плохой вариант, так как нет единого документа или единого источника данных, то мы не сможем более или менее лаконично централизованно управлять представлениями. Как можно сделать так, чтобы имея один документ и несколько представлений расположенных на разных фреймах их завязать. Представления созданы методом CreateView класса CSplitterWnd. И еще, если я не прав, то обязательно поправьте. На мой взгляд преимущество архитектуры "Документ/Представление" заключается именно в централизованном управлении представлениями конкретного документа. Т.е. переопределяем у каждого представления OnUpdate(). И одним вызовом UpdateAllViews контролируем всю ситуацию. И больше никаких преимуществ она не дает. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 18:30 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
RSDN Magazine #3 2005 есть как писать представление на примере текстового редактора. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.11.2005, 19:12 |
|
||
|
применение архитектуры MFC "Документ/Представление"
|
|||
|---|---|---|---|
|
#18+
KALAKOMВ данном случае документ - это все данные, находящиеся в структурах. ........это плохой вариант, так как нет единого документа или единого источника данных, то мы не сможем более или менее лаконично централизованно управлять представлениями.....На мой взгляд преимущество........переопределяем у каждого представления OnUpdate(). И одним вызовом UpdateAllViews контролируем всю ситуацию. И больше никаких преимуществ она не дает..... Вы сами предположили и сами констатировали, что это не совсем гуд (Ваша найденная сущность "документ"). Мне честно говоря трудно, что либо добавить - как то, я не очучаю проблем. Единственный возможно совет - оглянуться кругом, найти похожии решения в природе. Не думаю, что нет удачных примеров из смежных или похожих областей... По поводу апдэйт олл вью - хочу выдать следующую мысль... Это не есть удачное решение с точки зрения изменения информации в Вашей БИЗНЕС модели. Есть более элегантные способы (и более экономичные, а про кучу багов в Ваших вьюшках связанных с этим - вообще молчу). Это не голословное заявление - уж поверьте дураку. Сам когда то накушалси в SDI и штук 25 вьюшэк, построенных (досталось по наследству) на механизме апдэйта...В проекте, когда кол-во классов перевалит за 1000 - это будет ещё то веселье... Как альтернативу и возможное решение могу посоветовать ознакомиться с книгой Джэфри Элджера... А предложенную связь классов из MFC лучше воспринимать именно с кочки идеологии документ-представление. И не забывать, что она общая и соответственно для решения серьёзных задач может не совсем подходить. с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 14:49 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33376570&tid=2032447]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
56ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 321ms |

| 0 / 0 |
