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