Hi!
Also mal los! Unterstütz mich mal!
In den Models steckt die gesamte Geschäftslogik. Jedes Model beschäftigt sich dabei mit einem abgegrenzten Thema. Oft findet man zu einer Tabelle im DBMS ein Model, was aber nicht zwingend so sein muss. Models können sich auch mit anderen Aspekten beschäftigen, reinen Berechnungen ohne Datenhaltung beispielsweise. Sie sind auf alle Fälle so zu implementieren, dass sie eigenständig ihre Aufgabe erfüllen können. Sie bekommen ihre Daten, die sie nicht über die Datenhaltung beziehen können, über eine definierte Schnittstelle und liefern ein Ergebnis. Sie müssen und sollen nichts über den Anfrage (Request) wissen und auch nicht wie die Antwort (Response) aussehen soll.
Den Request entgegenzunehmen, die Daten daraus zu extrahieren und das Ergebnis an den Aufrufer zurückzuliefert ist Aufgabe des Controllers. Er ermittelt, welches Model für die Erledigung der Geschäftslogik in Frage kommt und welche View sich um die konkrete Formulierung der Antwort kümmern soll.
Die Aufgabe einer View ist es, aus den Daten, die ihr der Controller gibt, eine Ausgabe zu erstellen. Dazu kann sie sich eines (oder mehrerer) Templates bedienen.
Wenn man sich mit diesem Thema beschäftigen möchte, sollte man seine ersten Erfahrungen mit einer der bereits existierenden MVC-Implementationen sammeln. Da gibt es noch genug bei der richtigen Anwendung und Aufgabenverteilung falsch zu machen. Zusätzlich zur eigentlichen Aufgabe auch noch ein MVC aufzusetzen, sehe ich als äußerst gewagt an.
Man kann sich das vorstellen, wie in einem großen Unternehmen. Die Poststelle bekommt die Kundenanfragen geliefert (Front Controller als ein Teil vom C). Sie entscheidet, welche Fachabteilung für die Beantwortung zuständig ist. Deren Chef (Action Controller als weiterer ein Teil vom C) hat für seine Aufgaben Actions definiert, die den eigentlichen Lösungsablauf beschreiben. Das fachliche Thema bearbeitet ein geeigneter Mitarbeiter (Model) und gibt das Ergebnis an den Chef. Die ermittelten Daten bekommt eine Schreibkraft, die daraus ein Antwortschreiben aufsetzt (View). Das gibt der Chef zurück an die Poststelle, die es dem Anfragenden zurücksendet. (Und jetzt schlagt mich nicht ob dieser heutzutage nicht mehr realisischen Firmenstruktur (Model und View macht nun der selbe Mitarbeiter, die Schreibkraft wurde wegrationalisiert). Das MVC-Pattern wurde bereits Ende der 70er formuliert, und in die Zeit passt mein Beispiel gut. :-)
Lo!