Udostępnij za pośrednictwem


Alternatywy dla architektury/widoku dokumentu

W aplikacjach MFC używać do zarządzania informacjami, formaty plików i wizualną reprezentację danych użytkownikom architektury/widoku dokumentu.Dla większości aplikacji pulpitu architektura/widok dokumentu jest odpowiednie i skuteczne stosowanie architekturę.Ta architektura oddziela dane od wyświetlania i w większości przypadków, upraszcza aplikacji i zmniejsza nadmiarowy kod.

Jednakże architektury/widok dokumentu nie jest właściwe w niektórych sytuacjach.Rozważmy następujące przykłady:

  • Są przenoszenie aplikacji napisany w c dla systemu Windows, można wykonać port przed dodaniem wsparcia/widok dokumentu do aplikacji.

  • Pisania lekkie narzędzia może się okazać, że można wykonać bez architektury/widok dokumentu.

  • Jeśli oryginalnego kodu już miesza dane zarządzania danymi wyświetlanie, przenoszenie kodu model/widok dokumentu nie jest wart wysiłku, ponieważ należy oddzielić dwie.To warto pozostawić kod jest.

Aby utworzyć aplikację, która nie korzysta z architektury/widok dokumentu, wyczyść obsługują architektury/widok dokumentu pole wyboru w kroku 1 Kreatora aplikacji MFC.Zobacz Kreatora aplikacji MFC Aby uzyskać szczegółowe informacje.

[!UWAGA]

Okno dialogowe based applications, produkowane przez Kreatora aplikacji MFC nie należy używać architektury/widok dokumentu tak obsługują architektury/widok dokumentu pole wyboru jest wyłączone, jeśli wybierzesz typ aplikacji okno dialogowe.

Kreatorów Visual C++, jak również Edytory źródłowe i okno dialogowe pracować z generowanych aplikacji, podobnie jak w przypadku, gdy inna aplikacja wygenerowany przez kreatora.Aplikacja może obsługiwać paski narzędzi, paski przewijania i pasek stanu i ma o pole.Aplikacja nie zarejestruje wszelkie szablony dokumentów, a nie będzie zawierać klasy dokumentu.

Uwaga, że wygenerowany aplikacja ma klasy widoku, CChildView, pochodzący z CWnd.MFC tworzy i umieszczenie jednej instancji klasy widoku w systemie windows ramki utworzone przez aplikację.MFC nadal wymusza użycie widoku okna, ponieważ upraszcza pozycjonowania i zarządzania zawartością aplikacji.Można dodać kod malowanie OnPaint członkiem tej klasy.Kod powinien dodać paski przewijania w widoku, a nie do ramki.

Ponieważ architektura widok/dokumentów dostarczonych przez MFC jest odpowiedzialne za wykonanie wielu podstawowych funkcji aplikacji, jej braku, w projekcie oznacza, że odpowiedzialne za wykonanie wielu ważnych funkcji aplikacji:

  • Dostarczone przez Kreatora aplikacji MFC, menu aplikacji zawiera tylko New i Exit poleceń pliku menu.( New Polecenie jest obsługiwane tylko dla aplikacji MDI, wsparcie nie SDI aplikacji bez/widoku dokumentu.) Zasób generowanych menu nie obsługuje listy MRU (ostatnio używane).

  • Należy dodać funkcje obsługi i implementacji poleceń, które aplikacja będzie wspierać, łącznie z Otwórz i zapisać na pliku menu.MFC zwykle zawiera kod do obsługi tych funkcji, ale że wsparcie ściśle jest powiązany z architektury/widoku dokumentu.

  • Pasek narzędzi dla aplikacji, jeden, żądanie będzie minimalny.

Stanowczo zaleca się, aby użyć Kreatora aplikacji MFC do tworzenia aplikacji bez architektury/widok dokumentu, ponieważ Kreator gwarantuje poprawną architekturę MFC.Jednakże jeżeli muszą unikać, za pomocą kreatora, Oto kilka podejścia do pomijanie architektury/widok dokumentu w kodzie:

  • Potraktuj dokument jako nieużywane appendage i wdrożenie danych zarządzania kodu w klasie widoku powyższego sugerowanego.Obciążenie dla dokumentu jest stosunkowo niewielka.Jeden CDocument obiektu ponosi niewielką ilość narzutów samodzielnie plus małe obciążenie związane z CDocument's base klas, CCmdTarget i CObject.Obie klasy te ostatnie są niewielkie.

    Zadeklarowane w CDocument:

    • Dwa CString obiektów.

    • Trzy BOOLs.

    • Jeden CDocTemplate wskaźnik.

    • Jeden CPtrList obiekt, który zawiera listę widoków dokumentu.

    Ponadto dokument wymaga czasu, aby utworzyć obiekt dokumentu, jego wyświetlanie obiektów, okno ramek i obiektu szablonu dokumentu.

  • Traktuj dokumentu i widok jako nieużywane appendages.Umieścić zarządzania danymi i kod rysunku w oknie ramki, a nie w widoku.To podejście jest bliżej model programowania w języku C.

  • Zastąpić części ramy MFC, które Tworzenie dokumentu i widoku, aby wyeliminować, tworzenie ich w ogóle.Proces tworzenia dokumentu rozpoczyna się wywołanie CWinApp::AddDocTemplate.Wyeliminowanie tego wywołania z klasy aplikacji InitInstance Członkowskich działać, a zamiast tego utworzyć okno ramek w InitInstance samodzielnie.Umieszczanie kodu zarządzania danych w klasie ramki okna.Proces tworzenia widoku/dokumentu jest zilustrowane w Tworzenia dokumentu/View.To jest więcej pracy i wymaga głębsze zrozumienie RAM, ale zwalnia nas całkowicie z narzutów/widoku dokumentu.

Artykuł MFC: przy użyciu klas bazy danych bez dokumentów i widoków daje bardziej konkretne przykłady alternatyw/widok dokumentu w kontekście aplikacji baz danych.

Zobacz też

Koncepcje

Widok dokumentu/Architecture