Whouzuo: MVC Verständnisproblem

Beitrag lesen

Hi,

der Controller bekommt die Daten vom Model und verarbeitet sie. Soweit habe ich das auch verstanden.
In "Beispiel-Anwendungen" sieht man aber selten wo eine komplexere Verarbeitung von Daten statt findet.

Was ist, wenn ich nicht einfach Daten vom Model 1 zu 1 übernehme und dan die Views weitergebe? Sollte das alles im Controller stattfinden oder in einer getrennten Klasse?

Du setzt falsch an.
MVC kommt nicht aus dem Nichts. Es wurde erdacht und entwickelt, weil man etwas festgestellt hat: bei der Entwicklung von Software passiert es oft, dass sich manche fachlich/inhaltlichen Teile der Software (oder besser gesagt: "Anforderungsbereiche") öfter ändern als andere. Ein konkretes Beispiel wäre eine Website mit Userverwaltung, bei der sich zwar die Menüseite der einzelnen User (wo diese ihr Profil sehen können, ihr Passwort ändern können etc.) komplett ändern soll und anders aussehen soll - die Datenhaltung (was wird wie und wo gespeichert) aber gleich bleiben kann.
Durch eine MVC Architektur trennt man diese drei Aspekte voneinander (auf irgendeine Weise) und sorgt dafür, dass bei Änderung oder Eneuerung oder sogar komplettem Austausch einer dieser drei Aspekte nicht auch beide anderen Aspekte "angefasst" werden müssen.

Die Idee, Dinge voneinander zu trennen, die sich unterschiedlich oder unterschiedlich oft verändern, ist ziemlich alt. OOP ist nichts anderes als das, nur im Vergleich zu MVC auf einer niedrigeren Ebene.

Wenn du also deine Software programmierst, solltest du dich regelmäßig fragen: "wenn ich diesen Teil hier später mal ändere, was muss ich dann möglicherweise noch alles anpassen?" Solltest du feststellen, dass du möglicherweise Dinge ändern werden musst, die sich im Vergleich zum gerade angeguckten Teil selten ändern oder "eigentlich" nicht geändert werden bräuchten (unter rein fachlichen Gesichtspunkten), dann tust du etwas, was später potenziell Probleme verursachen wird.

Es gibt also kein festes Prinzip. Es hängt immer vom jeweiligen Anwendungsfall ab. Aber: in den meisten Fällen ist MVC eine gute Orientierungshilfe.