Du könntest die entscheidenden Eigenschaften der Model-Klasse public deklarieren. Dann könntest du in View direkt auf sie zugreifen.
Du könntest "get" und "set" verwenden (ich schätze mal, dass Java sowas genau wie C# unterstützt) um das Programm wissen zu lassen, wie andere Klassen auf bestimmte Eigenschaften von Model zugreifen dürfen und wie nicht.
Du könntest auch einfach eine public Methode in Model deklarieren, die genau die Daten zurückgibt, die du in View brauchst.
Im Prinzip ist komplett dir überlassen, wie du das Problem angehst. Entscheidend ist eigentlich nur, dass die eigentliche Arbeit innerhalb ihrer jeweiligen Klassen erledigt wird.
Ich denk ich versuchs nochmal mit den Gettern ..
Vom Prinzip her versteh ich ja das meiste, aber das Eclipse zickt bei mir wirklich in fast jeder Zeile rum weil immer iwas fehlt >_>
Mach dich in diesem Zusammenhang mit Listenern vertraut. Die wirst du hier gebrauchen.
Im Model bastelst du am Besten eine Methode, die die Events abfeuert. Der Controller registriert die jeweiligen Views für das Event.
Beispiel:
Interface:
Model:
View:
Controller:
Wenn jetzt in der ModelClass irgendwo doSomething() aufgerufen wird, werden alle registrierten Listener abgearbeitet.
Auf diese Weise ist das Model komplett unabhängig von der View. Die View kann jetzt nun alles Mögliche sein. Von Textausgaben auf dem Bildschirm oder Datei, bishin zu komplexen Grafiken. Das Model bekommt davon nichts mit. Mein Beispiel ist aber sehr rudimentär gehalten und soll auch nur die Arbeitsweise verdeutlichen. Es wäre auch noch besser, würde man noch Nebenläufigkeiten berücksichtigen und abfragen gegen null machen.
Ich bedank mich für die sehr ausführliche Erklärung sowie Skript ^^
Ob ichs so umsetz weiß ich aber noch nicht, aber ein bischen versuchen werd ichs mal
Mit Hilfe von anonymen Klassen lässt sich der Evenhandler auch im Controller ausführen. Dann muss das Registrieren das Events folgendermaßen aussehen:
Das hat den Vorteil, dass die View nicht zwingend das Listener-Interface implementieren muss. Dadurch sind Model und View noch ein Stück unabhängiger voneinander.