На этом шаге мы приведем общие сведения об архитектуре "документ/вид".
Архитектура "документ/вид" (иногда она еще называется "документ/представление") позволяет связать данные их представление на экране. Она реализована в виде классов, котопы создаются мастером AppWizard. Дадим общую характеристику этой архитектуры.
В каркасе MFC-приложения документ - это объект, содержащий данные приложения. Вид (представление) - это оконный объект, обычно связанный с клиентской областью окна на экране, с помощью которого пользователь взаимодействует с данными документа.
Такое логическое разделение данных и их визуального представления позволяет отображать документ разными способами, связав eго с несколькими представлениями. Например, в Microsoft Word доступны три вида отображения одного и того же документа: обычный, разметка страницы, структура документа. Кроме того, изменения, внесенные в одном представлении, отражаются во всех других.
Архитектура "документ/вид" упрощает процесс отображения данных. Вы можете сконструировать свое собственное представление, перегрузив функцию его отображения, обработчики сообщений от клавиатуры, мыши и пунктов меню. А использование готовых представлений, основанных на элементах управления, позволит создать приложение, похожее на Проводник Windows, - с элементами просмотра дерева и списка, которые расположены в разделенном на две части окне. Представление, основанное на поле ввода с форматированием, можно использовать для реализации текстового редактора.
Архитектура "документ/вид" упрощает печать и предварительный просмотр данных; при этом применяется та же функция ображения, что и для вывода информации на экран. В этой архитектуре предусмотрены вспомогательные средства для хранения и открытия документов. Данный процесс, называемый сериализацией, позволяет сохранять данные в формате объекта, используемого Вашим приложением, а также в формате любого другого бъекта, унаследованного от класса CObject.
Архитектура "документ/представление" имеет большое значение, так как обеспечивает каркас множеством возможностей для работы с документами приложения. Однако можно работать с MFC, не применяя ее, так как ее использование ведет к определенному падению производительности и увеличению размера приложения.
В некоторых случаях архитектура "документ/вид" не нужна. Например, для приложения, сжимающего текстовые файлы, требуется только диалоговая панель с полем для ввода названия файла и индикатор выполнения операции. Главное окно и представление не понадобятся, так как преимущества архитектуры "документ/вид" не были бы заметны. В данном случае можно использовать каркас приложения на базе диалогового окна, созданный мастером AppWizard.
На следующем шаге мы рассмотрим объекты, используемые в архитектуре "документ/вид".