Share via


Vantaggi dell'architettura documento/visualizzazione

Il vantaggio principale dell'uso dell'architettura di documento/visualizzazione MFC è che l'architettura supporta in particolare più visualizzazioni dello stesso documento. Se non sono necessarie più visualizzazioni e il piccolo sovraccarico di documento/visualizzazione è eccessivo nell'applicazione, è possibile evitare l'architettura. Alternative all'architettura documento/visualizzazione.

Si supponga che l'applicazione consenta agli utenti di visualizzare i dati numerici in formato foglio di calcolo o in formato grafico. Un utente potrebbe voler visualizzare contemporaneamente sia i dati non elaborati, in formato foglio di calcolo, sia un grafico risultante dai dati. Queste visualizzazioni separate vengono visualizzate in finestre cornice separate o in riquadri di divisione all'interno di una singola finestra. Si supponga ora che l'utente possa modificare i dati nel foglio di calcolo e visualizzare immediatamente le modifiche riflesse nel grafico.

In MFC la visualizzazione foglio di calcolo e la visualizzazione grafico si basano su classi diverse derivate da CView. Entrambe le visualizzazioni verranno associate a un singolo oggetto documento. Il documento archivia i dati (o può ottenerli da un database). Entrambe le visualizzazioni accedono al documento e visualizzano i dati recuperati.

Quando un utente aggiorna una delle visualizzazioni, tale oggetto visualizza chiama CDocument::UpdateAllViews. Tale funzione notifica tutte le visualizzazioni del documento e ogni visualizzazione viene aggiornata usando i dati più recenti del documento. La singola chiamata per UpdateAllViews sincronizzare le diverse visualizzazioni.

Questo scenario sarebbe difficile da codificare senza la separazione dei dati dalla visualizzazione, in particolare se le viste archiviavano i dati stessi. Con documento/visualizzazione, è facile. Il framework esegue la maggior parte del lavoro di coordinamento.

Cosa vuoi sapere di più su

Vedi anche

Architettura documento/visualizzazione