4 Stimmen

MVC für Dummies: Warum muss der Controller etwas an die Ansichten senden?

Wenn ich das richtig verstehe, dann ist die Funktion des Controllers die Verarbeitung von POST-Daten und die technischen Änderungen am Zustand der Anwendung (z.B. DB) über Model.

Soweit ich weiß, erhält View auch Daten aus dem Model.

So verstehe ich also den Arbeitsablauf:

Kundenanfrage --> App Front Controller --> (wenn Methode = POST --> Controller ) --> View --> zurück zum Kunden

Aquí Model wird verwendet von Controller zum Lesen und Schreiben von Daten und durch View um Daten zu lesen.

Der Controller wird also nicht jedes Mal verwendet, wenn die Seite geladen wird, sondern nur, wenn Anwendungsdaten hinzugefügt/aktualisiert werden. Die meiste Zeit wird der Controller umgangen.

Wie kommt es also, dass fast jede Ressource über MVC über Controller spricht, die Daten an Ansichten senden?

Ich versuche, eine Anwendung mit MVC-ähnlichen Muster zu schreiben. Also in meiner App Ansichten immer Daten für die Seite aus dem Modell erhalten. Wenn das Modell aktualisiert wird, füge ich die spezifische Modellaktualisierungszeit zum Memcache hinzu. Zur Laufzeit sucht jede Ansicht die letzte(n) Aktualisierungszeit(en) des/der zugehörigen Modells/Modelle und das letzte Mal, als der Cache für diese Ansicht generiert wurde. Wenn das Modell aktualisiert wurde, bevor der Cache gespeichert wurde, liest die Ansicht den Cache, andernfalls wird sie auf der Grundlage des aktualisierten Modells neu dargestellt.

0 Stimmen

Dies kann ein verwirrendes Thema sein, da MVC für das Web (zustandslos) anders ist als für SmallTalk (Desktop-Anwendung) beschrieben.

0 Stimmen

Was ist also im Web wichtiger als MVC der alten Schule? Ich bin wirklich daran interessiert, zu wissen, bevor ich zu weit in das Projekt und ändern Muster würde zu schwierig werden.

0voto

dmytrivv Punkte 608

Normalerweise verwendet Controller das Model und übergibt die verarbeiteten Daten an View. Der View sollte das Model nicht sehen. Hauptziel ist es, die Ansicht vom Modell getrennt zu halten!

0voto

chris Punkte 3740

MVC für Dummies: warum muss der Controller irgendetwas an die Views senden müssen?

Dies ist der Hauptpunkt von MVC: die Schaffung einer losen Kopplung durch die Trennung und Unterscheidung der Anliegen der Anwendung. Sie haben die Ansicht, das Modell und den Controller, die bestimmte Aufgaben erfüllen.

Warum die Notwendigkeit der Trennung, weil es schwierig ist, eine gigantische Godzilla-App zu debuggen und zu reparieren. Stellen Sie sich vor, Sie reparieren ein Auto aus Stein. Es gibt keine Bolzen. Alles ist aus einem großen Stein gemeißelt. Wie schwer ist es, das zu reparieren, wenn man nur die Räder wechseln will. Sie müssen den Felsen selbst herausmeißeln.

Die Hauptaufgabe des Controllers besteht darin, Anfragen zu bearbeiten und die entsprechende Ansicht anzuzeigen. Das ist seine Aufgabe. Das ist so, als würde man fragen, warum der Postbote die Post verschicken muss. Weil das seine Aufgabe ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X