Korrekte Trennung von GUI, Logik und Event nach MVC

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

also es gibt folgende Klassen:
package sudoku
-Sudoku.java //Aktuell das Hauptprogramm von dem aus alles gestartet wird
package sudoku.gui
- Gui.java //Die Gui
- GamePanel.java //weitere Teile der Gui
- JToggleLabel.java //weitere Teile der Gui
- ControllPanelTop.java //weitere Teile der Gui
package sudoku.data
- SudokuField //alle Dinge die das aktuelle Spiel betreffen
package sudoku.controller
- SudokuHandler //Der Eventhandler für die GUI
- TimeCounter //benutzt der Eventhandler um die Zeit zu zählen

So nun ist es so damit die "Gui" etwas anzeigen kann übergebe ich ihr das aktuelle "SodukoField" das im Hauptprogramm erzeugt wurde. Aus ihm ließt sie dann die Werte aus um sie anzuzeigen. Die Werte Verarbeitung passiert in der Klasse selber. Alle Events werden in im "SudokuHandler" ausgewertet. Nun braucht er aber euch zugriff auf die Werte. Soll ich ihm nun auch das aktuelle "SudokuField" übergeben, oder wie mache ich das nach korrektem MVC (Im Moment mache ich es so). Mit einer weiteren Klasse im Controller Package?

Ich kann auch noch mehr Code posten, wobei es mir eher um das Grundverständis dieses Problems geht, da ich das immer wieder brauchen kann.

Gruß Brainiac
 

Timmah

Bekanntes Mitglied
Schau dir mal in den FAQ das Observer-Pattern unter Design-Patterns an; das könnte dir evtl. helfen.
Andernfalls, was ich auch mal gerne mache, ist, einfach in der Gui ein Objekt des Controllers erzeugen, der alle Listener etc. enthält, in dessen Konstruktor ich die Gui selbst übergebe. Somit kennen sich die beiden Klassen komplett, und ich kann im Controller auf alle Objekte mit den get/set-Methoden zugreifen. Scheint für manche eher unsauber zu sein, doch es ist sehr praktisch.
 
G

Guest

Gast
Timmah hat gesagt.:
Schau dir mal in den FAQ das Observer-Pattern unter Design-Patterns an; das könnte dir evtl. helfen.
Schaue ich mir mal an. Danke.

Timmah hat gesagt.:
Andernfalls, was ich auch mal gerne mache, ist, einfach in der Gui ein Objekt des Controllers erzeugen, der alle Listener etc. enthält, in dessen Konstruktor ich die Gui selbst übergebe. Somit kennen sich die beiden Klassen komplett, und ich kann im Controller auf alle Objekte mit den get/set-Methoden zugreifen.

So hab ich das bis jetzt eigentlich auch immer gemacht, nur diesmal wollte ich es richtig machen, da das dann teilweise recht chaotisch wird, viele public Objekte in den Klassen, usw.

Gruß Brainiac
 

Timmah

Bekanntes Mitglied
Du brauchst keine public Objekte. Du erzeugst dir für alle Objekte get/set-Methoden, so dass die Objekte ruhig private sein können.
 
G

Guest

Gast
Timmah hat gesagt.:
Du brauchst keine public Objekte. Du erzeugst dir für alle Objekte get/set-Methoden, so dass die Objekte ruhig private sein können.

SO hab mich mal angemeldet.

Aber wie mach ich das wenn ich in der "GUI" eine Klasse "GUIPanel" habe. die selber hat wieder ihre get/set Methoden. Nur müßte ich ja dann noch mal die gleichen get/set Methoden in der GUI definieren, damit sie dann z.B. vom Eventhandler der die "GUI" kennt benutzt werden können. Bis jetzt hab ich dann halt das "GUIPanel" in der "GUI" public gemacht. Aber so richtig gefallen hat mir das ganze nicht. Das müßte doch auch besser gehen.

Gruß Brainiac
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Korrekte JTable.rowAt(point) für JTable in JScrollPane AWT, Swing, JavaFX & SWT 5
M Eine nicht korrekte Darstellung bei repaint() warum? AWT, Swing, JavaFX & SWT 4
S Abspeichern aus einem ImageIcon ins korrekte Format AWT, Swing, JavaFX & SWT 2
J Saubere Trennung Model, View, Controller Javafx AWT, Swing, JavaFX & SWT 10
D Swing Trennung der UI- und Persistenz-Schicht AWT, Swing, JavaFX & SWT 1
A Trennung GUI und Funktion AWT, Swing, JavaFX & SWT 5
J prinzipielles verständnis für Oberfläche/Code-trennung AWT, Swing, JavaFX & SWT 5
O Trennung GUI / Funktionalität AWT, Swing, JavaFX & SWT 3
F Zugriff auf Oberfläche bzw Trennung GUI / Logik AWT, Swing, JavaFX & SWT 3
K Trennung von GUI und Logik AWT, Swing, JavaFX & SWT 6
D Trennung des Event-Handling von der GUI AWT, Swing, JavaFX & SWT 4
D Trennung von Programm und Oberfläche AWT, Swing, JavaFX & SWT 3
O Trennung Gui und Anwendungslogik AWT, Swing, JavaFX & SWT 13
O Trennung Gui und Logik - Strukturierte Client Anwendung AWT, Swing, JavaFX & SWT 4
S Logik auf GUI übertragen AWT, Swing, JavaFX & SWT 2
P Swing GUI noch nicht gezeichnet - Logik läuft - blockiert AWT, Swing, JavaFX & SWT 3
N MVC - Logik zum Verändern der View AWT, Swing, JavaFX & SWT 8
E SWT und Separierung von Logik, Präsentation sowie Modell (also eine Form von MVC) AWT, Swing, JavaFX & SWT 10
O Zugriff auf PreferenceStore aus der Business-Logik-Schicht? AWT, Swing, JavaFX & SWT 11
V Wieviel Logik in paintComponent? AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben