JavaFX MVC-Pattern

Cromewell

Top Contributor
Moin :)
Ich gucke mir gerade das MVC-Pattern an und wollte einen kleinen Chat programmieren - via Server und Client.
Wie regel ich das denn ?
Was sollte ins model ?
Server und Client "seperat" und nur per Getter auf Input-/Outputstreams zugreifen ?

Alle guten Dinge sind drei, also erstmal Schluss mit fragen :D

PS: Wenn einer gute Tuts kennt, gerne verlinken ^^
 

Joose

Top Contributor
Wie regel ich das denn ?
Wie soll was geregelt werden?
Was sollte ins model ?
Alle Daten welche du benötigst. Beispiel: ChatUser (name, id, ip, reg datum, ....)
Server und Client "seperat" und nur per Getter auf Input-/Outputstreams zugreifen ?
Du kannst beides in einem Projekt schreiben, kannst aber natürlich auch 2 verschiedene Projekte erstellen (1x Client, 1xServer)

Kleiner Hinweis: Du willst dir das MVC Pattern angucken, das würde bei deinem Beispiel (eig) nur den Chatclient betreffen. Um MVC anzuschauen bzw. auszuprobieren tut man sich mit anderen Beispielen sicher einfacher (Kontaktmanager bzw. Adressbuch zum Beispiel)
 

Joose

Top Contributor
Wie schon oben gesagt, das Beispiel ist nicht gut gewählt um sich mit MVC auseinanderzusetzen! Lieber etwas einfacheres wo man sich auf MVC konzentrieren kann und nicht noch Netzwerkprogrammierung dabei hat.

Ich bin mir nicht sicher, wie der Client mit dem Pattern verbunden werden soll :S
Für mich ist der Client das ganze Projekt ;)
Es gibt aber eine Klasse, welche sich um die Kommunikation mit dem Server kümmert. Der entsprechende Controller könnte einen Verweis auf ein Objekt dieser Klasse bekommen um etwas an den Server zu schicken. (Achtung: Das ist eher eine einfache Lösung, aber sicher nicht die optimale ;))
 

Jardcore

Top Contributor
  • View = In JavaFX sind das deine FXML Dateien.
  • Controller = übernimmt Kommunikation zwischen Model und View.
  • Model = ausschließlich für die Datenhaltung zuständig.
Model muss kein Objekt sein, vielleicht eher ein Package, wenn überhaupt. Hier werden alle Objekte gesammelt die Daten beinhalten.
Wenn du zum Beispiel eine Klasse Auto hast:
Java:
public class Auto {
    private int kilometerstand;
    private Color farbe;

    public void erhoeheKilometerstand(int km) {
        kilometerstand += km;
    }
}
Durch einen Controller könntest du jetzt Eingaben der View verarbeiten und ein Auto Objekt verändern.
Durch einen "Fahre-10km-Button" könntest du zum Beispiel den Kilometerstand des Autos um 10km erhöhen.
"Fahre-10km-Button" -> "Controller (Aktuelles Auto)" -> "Auto.erhoeheKilometerstand(10);"
 

Cromewell

Top Contributor
Das Prinzip habe ich verstanden, aber ich wusste nicht, wie ich es mit dem Client in Verbindung bringe.
Bisher habe ich jetzt nur View und Controller, weil bei Data noch nichts wirklich hin musste - das war es auch, was mich so verunsichert hat.
 

Jardcore

Top Contributor
Da würde ich Joose zitieren:
Für mich ist der Client das ganze Projekt ;)

Ich bastel auch gerade an einem Hobby Projekt. MCV ist ja nur ein Richtwert, aber Trennung von Logik, Darstellung und Daten kommt auch dort vor. Und es geht um Netzwerke^^

Dabei habe ich mein Projekt in kleinere Projekte aufgesplittet. Es gibt ein Server Projekt ein Client Projekt und ein Core Projekt, in dem Gemeinsamkeiten untergebracht sind. In alle Projekten benutzte ich aber obige Trennung.
 

Ähnliche Java Themen

Neue Themen


Oben