Alternatywy dla architektury dokument/widok

Aplikacje MFC normalnie używać architektury/widok dokumentu do zarządzania informacjami, formaty plików i wizualną reprezentacją danych dla użytkowników.Dla większości aplikacji dla komputerów osobistych architektura/widok dokumentu jest Architektura aplikacji odpowiednie i skuteczne.Ta architektura oddziela dane od przeglądania i w większości przypadków, upraszcza aplikacji i zmniejsza zbędny kod.

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

  • Aplikacja napisana w C w systemie Windows są przenoszenie, można zakończyć swój port przed dodaniem Obsługa dokumentu/widoku do aplikacji.

  • Piszesz lekkie narzędzie może się okazać, że można zrobić bez architektury/widok dokumentu.

  • Jeśli oryginalny kod już mieszanki zarządzanie danymi z danymi wyświetlanie, przenoszenie kod, aby model/widok dokumentu nie jest warte wysiłku ponieważ dwa muszą być rozdzielone.Warto pozostawić kod jak jest.

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

[!UWAGA]

Okno aplikacji utworzone przez Kreatora aplikacji MFC nie należy używać architektury/widok dokumentu, więc obsługuje architektury/widok dokumentu pole wyboru jest nieaktywne, jeżeli wybierz typ aplikacji okno dialogowe.

Kreatorzy programu Visual C++, a także Edytory źródła i okno dialogowe, pracować z generowaną aplikację tak samo, jak z innych aplikacji wygenerowany przez kreatora.Aplikacja może obsługiwać paski narzędzi, paski przewijania i pasek stanu, a ma o pole.Aplikacja nie zarejestruje wszelkie szablony dokumentów, a nie będzie zawierać klasą dokumentu.

Należy zauważyć, że wygenerowany aplikacji ma klasy view, CChildView, pochodzące z CWnd.Pozycje jedno wystąpienie klasy widoku w ramach systemu windows ramki utworzone przez aplikację i tworzy MFC.MFC nadal wymusza użycie widoku okna, ponieważ to upraszcza pozycjonowanie i zarządzanie zawartością aplikacji.Można dodać kod obraz do OnPaint tej klasy.Kod powinien dodać paski przewijania do widoku, a nie do ramki.

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

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

  • Należy dodać funkcje obsługi i implementacji dla wszelkich poleceń, które mają wspierać aplikacji, łącznie z Otwórz i zapisać na pliku menu.MFC normalnie zawiera kod do obsługi tych funkcji, ale ta obsługa jest ściśle związana z architekturą/widok dokumentu.

  • Narzędzi aplikacji, jeden, żądanie będzie minimalny.

Zdecydowanie zaleca się użyć Kreatora aplikacji MFC do tworzenia aplikacji bez architektury/widok dokumentu, ponieważ Kreator gwarantuje poprawne architektura MFC.Jednak jeśli za pomocą kreatora należy unikać, Oto kilka metod z pominięciem architektury/widok dokumentu w kodzie:

  • Potraktuj dokument, jakby nieużywane dodatek i wdrożenie danych zarządzania kodu w klasie widok, jak wynika z powyższego.Obciążenia dla dokumentu jest stosunkowo niska.Pojedynczy CDocument obiektu wiąże się z niewielką ilość obciążenie przez siebie, a także małe obciążenie związane z CDocument's oprzeć klas, klasy i CObject.Obie klasy te ostatnie są małe.

    Zadeklarowane w CDocument:

    • Dwa CString obiektów.

    • Trzy BOOLs.

    • Jeden CDocTemplate wskaźnik.

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

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

  • Traktuj jako dodatki nieużywane dokumentu i widok.Umieścić zarządzanie danymi i kod rysunku w oknie ramki, a nie widok.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.Rozpocznie się proces tworzenia dokumentu z wezwaniem do CWinApp::AddDocTemplate.Wyeliminowanie tego wywołania z klasy aplikacji InitInstance Członkowskich działać, a zamiast tego utworzyć okna ramki w InitInstance samodzielnie.Kod zarządzania danych należy umieścić w swojej klasy okna ramki.Ilustruje proces tworzenia dokumentu/view Tworzenie dokumentu/View.To jest więcej pracy i wymaga głębsze zrozumienie RAM, ale uwalnia użytkownika wyłącznie z obciążenie/widoku dokumentu.

Artykuł MFC: za pomocą klasy bazy danych bez dokumentów i widoków daje bardziej konkretnymi przykładami alternatywne/widok dokumentu w kontekście aplikacji baz danych.

Zobacz też

Koncepcje

Architektura dokument/widok