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