MFC ドキュメント/ビュー アーキテクチャを使用する主な利点は、アーキテクチャが同じドキュメントの複数のビューを特に適切にサポートしていることです。 (複数のビューが必要なく、アプリケーションでドキュメント/ビューのオーバーヘッドが大きすぎる場合は、アーキテクチャを回避できます。 ドキュメント/ビュー アーキテクチャの代替手段。
アプリケーションで、ユーザーがスプレッドシート形式またはグラフ 形式で数値データを表示できるようにするとします。 ユーザーは、生データと、データから得たグラフの両方をスプレッドシート形式で同時に表示できます。 これらの個別のビューは、個別のフレーム ウィンドウまたは 1 つのウィンドウ内の分割ウィンドウに表示します。 次に、ユーザーがスプレッドシート内のデータを編集し、変更がグラフに即座に反映されるのを確認できるものとします。
MFC では、スプレッドシート ビューとグラフ ビューは、CView から派生したさまざまなクラスに基づいています。 どちらのビューも 1 つのドキュメント オブジェクトに関連付けられます。 ドキュメントにはデータが格納されます (または、データベースからデータを取得する場合があります)。 どちらのビューもドキュメントにアクセスし、そこから取得したデータを表示します。
ユーザーがいずれかのビューを更新すると、そのビュー オブジェクトは CDocument::UpdateAllViews
を呼び出します。 この関数はドキュメントのすべてのビューを通知し、各ビューはドキュメントの最新のデータを使用して自身を更新します。
UpdateAllViews
を 1 回呼び出すと、異なるビューが同期されます。
このシナリオでは、ビューからデータを分離せずにコーディングすることは困難です。特に、ビューがデータ自体を格納している場合です。 ドキュメント/ビューを使用すると、簡単です。 フレームワークは、ほとんどの調整作業を行います。