Java MVC (Model View Controller)

Viele Anwendungen lassen sich mit dem MVC Design Pattern besser programmieren und wartbar halten. Mit Hilfe des MVC Programm Designs kann man schneller und effektiver programmieren.
Zum Einstieg gibt es hier ein kleines Programmbeispiel (mit GUI), in dem man gut nachvollziehen kann, wie manin Java MVC programmiert.

Jeder der Software schon mal geschrieben hat, kennt bestimmt das Problem vom unsauberen Code. Man kann nicht einfach schnell eine Funktion seinem Programm hinzufügen, sondern muss an sehr vielen Stellen im Programmcode arbeiten. Da durch kommt es oft zu Problemen mit anderen Methoden (Funktionen), so dass man meistens sehr viel Zeit für eine Programmänderung benötigt.

An dieser Stelle erleichtert das Java MVC Prinzip die Programmierung und eventuelle Änderungen im Source Code (Programmcode).

Der Controller bildet ein Objekt (Referenz) von dem Model und der View. Die View bekommt eine Referenz von dem Controller. So bald wie eine Action auf der View ausgelöst wird, gibt diese eine Meldung an den Controller weiter. Der Controller ändert über einen Setter oder Methode (Funktion) das Model. Wenn sich das Model ändert gibt es eine Meldung weiter, so dass die View das Model abfragt und die View sich aktualisiert.

Java MVC Design Pattern

 

Das MVC Prinzip (MVC Pattern) soll durch die obere Grafik besser erklärt werden. In jeder Programmiersprache muss das MVC Design anders umgesetzt werden.

Java MVC

Seit der Version 1.1 bietet Java das Model View Controller Prinzip (Java MVC Pattern) an. Dies wird technisch durch die Nutzung von Observer und Observable umgesetzt.

Sun hat bei der Umsetzung des MVC Prinzips jedoch seinen eigenen Weg gewählt. Der Controller hat jeweils eine Referenz vom Model und der View.

Beim Starten erstellt man eine Referenz von seinem Controller, welcher wiederum das Model und die View initialisiert. Jede einzelne View kann so ihren eigenen MVC Controller haben.

MEIN BEISPIEL

Zur besseren Erklärung des Java MVC Prinzipes habes ich ein kleines Programm geschrieben, welches per Button-Klick immer nur die Farbe ändert und als Button-Text die aktuellen Farbwerte ausgibt, weiterhin kann man Zahlen hoch- und runterzählen.

MEINE MODELLE

DAS MODEL FÜR DAS ZÄHLEN DER ZAHLEN

DAS MODEL FÜR DIE ZUFALLSFARBE

In den Modellen werden die Grundfunktionen von einem Programm definiert. Im ersten Model wird ein Zahl (Integer) hoch und runter gezählt. Dazu werden die Methoden dec() -> Decrement und inc() -> Increment aufgerufen, diese werden durch den Controller angesteuert. Als Controller kann auch die Main-Methode mit einer Kommandozeilen Eingabe funktionieren. An dieser Stelle macht sich die Verwendung des MVC Prinzps bemerkbar, Man kann einfach zu seinem Programm Funktionen hinzufügen ohne, das die Änderung anderen Programmcode beeinflusst. An dieser Stelle sollte man jedoch Acht geben, da Man diese Aussage nicht Pauschalisieren sollte.

Die Modelle werden von den View observiert und greifen auf die Klasse Observable als Object zu.

DER CONTROLLER

Der Controller hat Referenzen (Objekte) auf die beiden Modelle und die View. So bald wie in der View ein Aktion (Klick, Doppelklick etc. ) ausgelöst. Dies wird hier durch sogenannte ActionCommands übernommen und verarbeitet. Diese lösen nach einen ActionCommand (gewähltes nach einem String) eine Methode (Funktion) von den Modellen aus.

DIE VIEW

Ein weiteres Beispiel zur Model-View-Controller-Programmierung kann man in folgendem Artikel -> Kleines MVC Beispiel (Java) finden. Einen anderen tollen Artikel zu Java MVC könnt ihr hier finden – Blog von BigBasti