Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Ключевым преимуществом использования архитектуры документа и представления MFC является то, что архитектура поддерживает несколько представлений одного и того же документа особенно хорошо. (Если вам не требуется несколько представлений и накладные расходы на архитектуру документа/представления избыточны для вашего приложения, вы можете обойтись без этой архитектуры. Альтернативы архитектуре документа/представления.)
Предположим, что приложение позволяет пользователям просматривать числовые данные в виде электронной таблицы или в форме диаграммы. Пользователю может потребоваться одновременно просматривать необработанные данные в виде электронной таблицы и диаграмму, которая приводит к данным. Эти отдельные представления отображаются в отдельных рамочных окнах или в сплиттерных панелях в одном окне. Теперь предположим, что пользователь может редактировать данные в электронной таблице и видеть изменения, мгновенно отраженные на диаграмме.
В MFC представление электронной таблицы и представление диаграммы будут основываться на разных классах, производных от CView. Оба представления будут связаны с одним объектом документа. Документ хранит данные (или, возможно, получает их из базы данных). Оба представления обращаются к документу и отображают данные, полученные из него.
Когда пользователь обновляет одно из представлений, объект этого представления вызывает CDocument::UpdateAllViews
. Эта функция уведомляет обо всех представлениях документа, а каждое представление обновляется с помощью последних данных из документа. Единственный вызов UpdateAllViews
синхронизирует различные представления.
Этот сценарий будет трудно кодировать без разделения данных от представления, особенно если представления хранят сами данные. С документом и представлением это легко. Платформа выполняет большую часть работы по координации для вас.