Daher gibt es in diesem Bereich viele verschiedene Designmuster.
- Model View Presenter (mvp)
- Modellansicht Presenter anzeigen (MVVP)
- Model View Controller
- Modell 2
und so weiter. Im Laufe der Jahre wurden diese miteinander verflochten, zusammengefügt, verändert und in einer Vielzahl von Zusammenhängen angewendet. Wichtig dabei ist, dass sich das MVC-Entwurfsmuster von 1977 stark verändert hat und nicht mehr das Entwurfsmuster ist, das von serverseitigen Webframeworks verwendet wird. Als Beispiel in der ursprünglichen Smalltalk-Implementierung würde das Modell die Ansicht auf Änderungen beobachten, was nicht mehr der Fall ist, da die Serverseite HTML-Elemente im Browser des Benutzers einfach nicht beobachten kann. Wenn sich die Ansicht ändert, sendet die Ansicht stattdessen eine Anforderung an die Steuerung, die dann die Ansicht aktualisiert. Auch hier wird die ursprüngliche MVC-Implementierung nicht befolgt, da eine Aktualisierung des Modells bedeuten würde, dass alle vom Modell abhängigen Ansichten aktualisiert würden.
Die modernen Web-Frameworks folgen einer einfachen dreistufigen Architektur, die auch als Modell 2-Architektur bezeichnet wird.
Es gibt natürlich Beispiele für echte MVC-Architekturen im Web, aber diese sind oft nur clientseitig und mit einem Server verbunden, der der Model 2-Architektur folgt, da die Ansichten xml und json sind und nicht auf Änderungen überprüft werden. Beispiele für clientseitige reine MVC-Architekturen sind Sencha Touch und Sproutcore.
Wenn Sie MVC im Browser, MVC wie auf dem Server und MVC wie als Datenebene haben, haben Sie eine hierarchische MVC-Implementierung.
Hinweis. Ich habe nur über Web-Frameworks gesprochen, andere Implementierungen von MVC wie Java Swing und Flex haben andere Implementierungsunterschiede.