Hi!
- Beim Controller habe ich zum ersten Mal gesehen, dass man innerhalb einer Klasse auch neue eigenständige (Unterklassen?) erstellen kann?
Hat aber nichts mit dem Controller zu tun, dass man private Klassen anlegen kann.
- Meine Hauptfrage, da ich letztes in diesem Thread versucht hatte die allgemeine Struktur von Klassen zu erlernen, wie nun genau der Vorteil der oberen MVC aussieht?
MVC ist eine Methode, die Zuständigkeiten zu trennen. Es geht dabei immer darum, modulare Programmteile zu haben, die in sich abgeschlossen eine Aufgabe erfüllen. Man kann sie dann unter Beibehaltung der bestehenden Schnittstellen intern umschreiben, ohne die jeweils anderen Teile zu betrachten. Man kann beispielsweise bei gleicher Geschäftslogik (im Model) die View ändern, um die Daten für ein anderes Ausgabemedium anders formatiert auszugeben.
Man braucht dazu nicht unbedingt das MVC-Pattern, aber es ist eben eine von vielen Möglichkeit, um komplexe Anforderungen übersichtlich in Code zu strukturieren.
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. Ich frage mich nun, wie es grob aussehen würde, wenn ich das Aussehen des Calculators oder anstatt Multiply eine andere Rechnung integrieren/verändern wurde, denn mit MVC sollte das ja nun praktisch/unaufwändig gehandhabt werden
Solange sich die View weiterverwenden lässt, brauchst du das Model nur um weitere Funktionen zu erweitern oder schreibst bei grundlegend verschiedenen Aufgaben ein neues. Dem Controller eine weitere Action hinzufügen und fertig ist die neue Funktionalität (sehr vereinfacht dargestellt).
Lo!