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.