MVC-Modell mit austauschbaren Views?



  • Guten Tag

    Möchte dem User die Möglichkeit geben, beim Programmstart zu wählen ob eine/welche GUI geladen werden soll.
    Habe das Modell soweit implementiert, dass ich die View Klasse austauschen könnte, doch nun weiss ich nicht weiter.
    Wie kann ich zur Laufzeit eine bestimmte (Gruppe von) Klasse(n) unter gleichem Namen laden?

    #include "Modell.h"
    #include "View.h"
    
    class Controller
    {
    ...
        void do_it()
        {
            Modell modell;
            View view(modell);  //Hier müsste entweder das eine oder das andere geladen werden
            modell.do_it();
            view.show();
        }
    ...
    };
    

    Für Hilfe wär ich sehr dankbar
    Grüsse
    Roland



  • Lege eine Factory mit rein virtueller Funktion createView(Modell const&); an.
    Dann erbst Du davon zwei verschiedene Factories, die eine erstellt die erste sorte view, die zweite die andere. Zu Beginn machste einmal ne Fallunterscheidung und instanziierst die korrekte factory. Zum erstellen von Views schreibste dann immer

    viewFactory->createView(model);

    und benutzt damit automatisch die Factory, die zu Anfang angelegt wurde.

    MfG Jester



  • Danke, werds probieren :life:


Anmelden zum Antworten