mrjerk: Vorteil MVC

Beitrag lesen

Hallo,

  1. Beim Controller habe ich zum ersten Mal gesehen, dass man innerhalb einer Klasse auch neue eigenständige (Unterklassen?) erstellen kann?

Ja. Das kann sinnvoll sein, wenn die Unterklasse (oder das "Unter-Interface") in einem so engen Bezug zur "Hauptklasse" (bzw. dem Interface) steht, dass sie ohne diese überhaupt keinen Sinn machen würde.

Im Java-Sprachumfang gibt es dazu diverse Beispiele, z.b.
ein einzelnes Schlüssel-Wert-Paar in einer Map:
Ein Schlüssel-/Wertpaar ausserhalb seines Kontextes "Map" zu betrachten, macht keinen Sinn, deswegen ist das Interface "Entry" ein Teil des Interfaces "Map".

Man hätte jetzt ganz blöd ausgedrückt, in der Klasse "view" ja schon ein "Model" erstellen können und bräuchte im main-programm nicht einmal model und view erzeugen.

...und dann das Model auch nochmal neu programmieren müssen, wenn man mal Präesentation verändern bzw. neu machen will :)
Wie schon die Vorredner beschrieben haben, die Trennung von Model, View und Controller erlaubt, dass Datenhaltung/Repräsentation, Logik und Präsentation unabhängig voneinander sind, sodass diese jeweils für sich ausgetauscht werden können.
Nicht immer ist das sinnvoll, z.b. wenn die Anwendungslogik in einem so erheblichen Maß von der Art der Datenhaltung abhängt, dass dies nicht getrennt werden kann. Deswegen gibt es auch Abwandlungen des MVC-Musters, bei denen einzelne Komponenten zusammengezogen werden.
Umgekehrt gibt es auch Fälle, in denen es sinnvoll sein kann, die einzelnen Schichten weiter zu unterteilen, z.b. das Model in einer System-abhängigen (z.b. konkrete Anbindung an eine MySQL-Datenbank) und system-unabhängigen Schicht (z.b. Klassen zum erzeugen/updaten/löschen von Objekten UNABHÄNGIG von der darunterliegenden Persistenzschickt) zu realisieren.

  1. Wie war denn das nochmal, wenn ich vom Main-Programm oder einer anderen Klasse auf eine statische Klassenvariable zugreife?

Klassenname.VARIABLENNAME="Wertzuweisung" (Wenn sie nicht Final ist)
Auf Variablen sollte man von aussen nach Möglichkeit über Setter zugreifen.
Davon aber mal abgesehen, dürfte sich durch die von Dir geschriebene Anweisung die statische Variable entsprechend verändern, alle Instanzen der Klasse, die mit dieser Variable umgehen, würden künftig den neuen Wert nehmen, genauso auch andere Klassen, die die statische Variable auslesen.

Viele Grüße,
Jörg