Ich habe hier stundenlang gesessen und versucht, das herauszufinden, also ein bisschen Sympathie für diese große Frage. :)
Das Ziel: Ich möchte meinen fertigen Code einfach in MVC-Teile (Model View Controller) aufteilen. Ich habe die Spiellogiken gemacht und Text basiert - der Code funktioniert gut.
Das Problem : Nun, ich möchte diesen Code in MVC implementieren, aber wo erklären Sie für das MODELL, dass es textbasiert verwendet werden soll? Weil die VIEW nur für das Layout (grafisch) korrekt ist? Es fällt mir wirklich schwer, herauszufinden, wo ich anfangen soll. Irgendwelche Hinweise wären so nett!
Hier ist mein Spiellogik-Code:
%Vor%So habe ich meine DriveView bisher definiert: (nur versuchen, einen Knopf zum Funktionieren zu bringen)
%Vor%}
Und DriveController, der mir einen Fehler beim Kompilieren gibt
%Vor%}
Ihr Spielmodell kann mehrere Ansichten haben: eine GUI-Ansicht, eine Konsolenansicht, eine Statusansicht usw. Normalerweise sieht jede Ansicht auf Änderungen im Modell zu und fragt dann das Modell nach den benötigten Informationen ab um seine besondere Sichtweise darzustellen. Dieses einfache Spiel wurde speziell zur Veranschaulichung der Konzepte entwickelt. Der Abschnitt mit dem Namen "Design" wird detaillierter ausgeführt.
Nachtrag: Dieser Entwurf entspricht ungefähr dieser Architektur , die unten symbolisiert ist.
%Vor%
Um einen Stich zu machen (und das ist eine Art Overkill), würde ich eine Game-State-Bean machen, die den Zustand repräsentiert, in dem sich das Spiel gerade befindet; das wäre ein "Modellobjekt". Betrachtet man den Code, würde er wahrscheinlich String [] mellan enthalten. Dann hätte ich ein Datenzugriffsobjekt, das einen Verweis auf die Game-State-Bean enthält und über Methoden zum Aktualisieren des Spielstatus verfügt.
Die Spiellogik für verschiedene Aktionen würde sich in einem Dienstobjekt befinden, das einen Verweis auf das Datenzugriffsobjekt hat, und der Controller hätte einen Verweis auf das Dienstobjekt. Es würde die verschiedenen Aktionsmethoden aufrufen, abhängig davon, welche Interaktion von der Schnittstelle, der Ansicht, erhalten wurde.
Wie ich schon sagte, das ist eine Art Overkill.
Tags und Links java model-view-controller