文档/视图结构的优点

使用 MFC 文档/视图体系结构的主要优点是,该体系结构可以特别好地支持同一文档的多个视图。 (如果不需要多个视图,并且文档/视图的小额开销在应用程序中属于过度开销,则可以避免这种体系结构。文档/视图体系结构的替换选项。)

假设应用程序允许用户以电子表格形式或图表形式查看数字数据。 用户可能希望同时查看原始数据(电子表格形式)和由数据生成的图表。 可以在单独的框架窗口或单个窗口内的拆分窗格中显示这些单独的视图。 现在,假设用户可以编辑电子表格中的数据并立即看到图表中反映的更改。

在 MFC 中,电子表格视图和图表视图将基于从 CView 派生的不同类。 这两个视图都将与单个文档对象相关联。 文档存储数据(或可能从数据库获取数据)。 这两个视图都访问文档并显示它们从中检索的数据。

当用户更新其中一个视图时,该视图对象将调用 CDocument::UpdateAllViews。 该函数会通知文档的所有视图,并且每个视图都使用文档的最新数据进行自我更新。 对 UpdateAllViews 的单个调用将同步不同的视图。

如果不将数据与视图分离,则此方案将很难编码,尤其是在视图本身存储数据的情况下。 使用文档/视图,就很容易了。 该框架为你做了大部分协调工作。

你想进一步了解什么

另请参阅

文档/视图体系结构