Krzysztof Mossakowski
Materiały dla studentów
 

Architektura dokument/widok
(document/view architecture)

MFC
Spis treści

Architektura dokument/
widok
Cechy architektury dokument/widok
Rezygnacja z architektury dokument/widok
Dokumenty, widoki i wzorce dokumentów

  •  Cechy architektury dokument/widok

    • Rozróżnienie pomiędzy danymi i sposobem ich prezentacji

      • dokument (document)
        - zawiera wszystkie dane od wczytania przez modyfikacje aż do zapisania
        - może istnieć bez żadnego widoku
        - podstawową klasą dla dokumentów jest CDocument

      • widok (view)
        - jest sposobem prezentacji danych dokumentu
        - musi istnieć dokument, do którego jest dołączony (tylko w przypadku jawnej rezygnacji z architektury dokument/widok będzie istnieć obiekt widoku bez dokumentu)
        - może istnieć wiele widoków tego samego dokumentu
        - daje użytkownikowi możliwość modyfikacji danych dokumentu
        - podstawową klasą dla widoków jest CView

    • Powiązania pomiędzy dokumentem i widokiem

      • dokument może mieć dowolną liczbę widoków

      • widok musi być związany z dokumentem

      • za powiązanie widoku z dokumentem odpowiedzialny jest wzorzec dokumentu (document template)
        - podstawową klasą dla wzorców dokumentów jest CDocTemplate

[początek strony]

  •  Rezygnacja z architektury dokument/widok

    • Aplikacje oparte na dialogu (dialog-based applications) nie mają wbudowanej obslugi architektury dokument/widok

    • W przypadku tworzenia aplikacji jednego z pozostałych typów: jednodokumentowej (single document) lub wielodokumentowej (multiple documents) jest dodatkowa możliwość rezygnacji z obsługi architektury dokument/widok, co spowoduje m.in.:

      • brak dokumentu, choć będzie widok (klasy CChildView dziedziczącej z CView)

      • mniejsza liczba opcji w automatycznie generowanym menu (brak menu Edit oraz opcji wczytywania i zapisywania w menu File)

      • brak listy ostatnio używanych plików

      • mniejsza liczba opcji dostępnych w automatycznie wygenerowanym oknie toolbar

[początek strony]

  •  Dokumenty, widoki i wzorce dokumentów

    • Znalezienie wszystkich wzorców dokumentów stosowanych w aplikacji:

      • CWinApp::GetFirstDocTemplatePosition

      • CWinApp::GetNextDocTemplate

    • Znalezienie wszystkich dokumentów pochodzących z jednego wzorca:

      • CDocTemplate::GetFirstDocPosition

      • CDocTemplate::GetNextDoc

    • Znalezienie wzorca, z którego pochodzi dokumentu:

      • CDocument::GetDocTemplate

    • Znalezienie wszystkich widoków dokumentu:

      • CDocument::GetFirstViewPosition

      • CDocument::GetNextView

    • Znalezienie dokumentu przedstawianego przez widoku:

[początek strony]