Архитектура "документ-вид"

     Программы, написанные на VC++, используют для работы и предоставления данных архитектуру "документ-вид", которая характерна для большинства Windows-приложений. Такая архитектура разделяет "документ", то есть данные, с которыми работает программа, и "вид", то есть способ представления этих данных пользователю. Другими словами, способ хранения данных на диске или в памяти никаким образом не влияет на их внешнее представление пользователю. Представьте себе, например, хранящуюся в памяти сканированную фотографию. Программа может изображать ее в нескольких видах (например, в одном окне — полностью, а. в другом — увеличенный участок). Все изменения, происходящие при редактировании изображения в одном окне, автоматически появляются в другом. Другие примеры такой архитектуры вы можете встретить практически в любой программе, например, в текстовом процессоре, который может показывать текст как в нормальном виде, так и в виде готового листа бумаги для предварительного, просмотра при выводе на печать.
    В программах, пользующихся библиотекой MFC, как документ, так и его виды представляются классами VC++. В большинстве случаев вы сможете произвести необходимые вам для этого классы от базовых, уже имеющихся в библиотеке MFC. Каждый документ будет представлен в виде объекта (помните, что мы говорили о классах и объектах немного выше?), который будет обеспечивать пространство для хранения данных в памяти и отвечать за основные операции, например такие, как запись и чтение документа с диска (большая часть таких операций выполняется основой вашего приложения). Кроме того, у вас будет по объекту для каждого используемого вами вида. Каждый объект-вид представляет собой экранное окно и отвечает за такие задачи, как взаимодействие с пользователем, взаимодействие с соответствующим объектом-документом, печать и т.п.