Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Урок 26. Понятие об архитектуре Документ-Вид / Уроки MFC / Visual C++
Visual C++. MFC Урок 26. Понятие об архитектуре Документ-Вид
Архитектура Документ-Вид означает приблизительно следующее. У вас есть один класс, который отвечает за данные, и второй класс, который отвечает за представление этих данных на экране. Таким образом эти два класса разделяют обязанности, и каждый отвечает за свою собственную часть работы. При этом у одного документа может быть несколько видов. Класс документа отвечает за такие вещи, как хранение данных, за сохранение их на диске и чтение с диска и др., класс же вида за представление данных на экране (прорисовка, обновление и т. п.).
Пример номер один - Word. Вы можете просматривать ваш файл в разных режимах (обычном, режиме структуры и т. п.). И документ при этом у вас тот же самый, только его виды будут различаться.
Пример номер два. Программа - часы. Она просто показывает время. Но при этом собственно данные (текущее время и т. п.) лучше хранить отдельно от представления их на экране (например, потому, что ваши часы вы можете показывать в разных видах - в виде часов со стрелками, в виде электронных часов с цифрами и т. п.).
Пример номер три. Представьте себе, что в документе вы имеете дело с окружностью. На экране вы можете представить ее разными способами - или в виде собственно окружности, или в виде формулы, или еще как-нибудь. Документ при этом у вас будет один, а видов у него может быть несколько.
Когда вы начинаете делать свое приложение с использованием AppWizard, то на шаге 1 мастера вы задаете, будет ли или нет использоваться архитектура Документ-Вид:
В вашей программе класс документа - это потомок класса CDocument, а класс вида проиходит от класса CView непосредственно или через другие классы. Предка для вашего класса Вида вы можете выбрать на шаге 6 AppWizard'а:
Отметим, то CView - это оконный класс (потомок класса CWnd), а CDocument - нет.