Sie haben vergessen Aktions-Domain-Responder ( ADR ).
Wie in einigen Grafiken oben erläutert, besteht ein direkter Zusammenhang zwischen dem Modell とのことです。 Siehe in MVC. Eine Aktion wird auf dem Controller die eine Aktion auf der Seite Modell . Diese Aktion in der Modell , wird eine Reaktion auslösen im Siehe . Die Siehe wird immer dann aktualisiert, wenn die Modell den Zustand ändert.
Einige Leute vergessen immer wieder, dass MVC wurde in den späten 70er Jahren geschaffen. und dass das Web erst Ende der 80er/Anfang der 90er Jahre geschaffen wurde. MVC wurde ursprünglich nicht für das Web entwickelt, sondern für Desktop-Anwendungen, bei denen Controller, Model und View gemeinsam existieren.
Da wir Web-Frameworks verwenden ( z.B.:. Laravel ), die immer noch die gleichen Namenskonventionen verwenden ( model-view-controller ), neigen wir zu der Annahme, dass es sich um MVC handeln muss, aber in Wirklichkeit ist es etwas anderes.
Werfen Sie stattdessen einen Blick auf Aktions-Domain-Responder . Bei ADR ist die Controller erhält eine Aktion die eine Operation in der Datei Modell/Gebiet . So weit, so gut. Der Unterschied ist, dass die Antwort/Daten dieser Operation gesammelt und an eine Antwortgeber ( z.B.:. view()
) für das Rendering. Wenn eine neue Aktion für dieselbe Komponente angefordert wird, wird die Controller wird erneut aufgerufen, und der Zyklus wiederholt sich. Im ADR gibt es keine Verbindung zwischen dem Modell/der Domäne und der Ansicht ( Antwort des Empfängers ).
Nota: Wikipedia erklärt, dass " Jede ADR-Aktion wird jedoch durch separate Klassen oder Abschlüsse repräsentiert. ". Dies ist pas unbedingt wahr. Mehrere Aktionen können sich in demselben Controller befinden, und das Muster ist immer noch dasselbe.
mvc adr model-view-controller action-domain-responder
6 Stimmen
mvc.givan.se/#mvp
3 Stimmen
IDK, aber angeblich für die ursprüngliche MVC, war es in der kleinen verwendet werden soll. Jede Schaltfläche, jedes Etikett usw. hatte sein eigenes View- und Controller-Objekt, zumindest behauptet Onkel Bob das. Ich glaube, er hat über Smalltalk gesprochen. Schauen Sie sich seine Vorträge auf YouTube an, sie sind faszinierend.
1 Stimmen
MVP fügt eine zusätzliche Ebene der Indirektion hinzu, indem es den View-Controller in einen View und einen Presenter aufteilt...
4 Stimmen
Der Hauptunterschied besteht darin, dass der Controller in MVC keine Daten vom Modell an die Ansicht weitergibt. Er benachrichtigt lediglich die Ansicht, um die Daten vom Modell selbst zu erhalten. In MVP hingegen gibt es keine Verbindung zwischen View und Model. Der Presenter selbst holt sich die benötigten Daten aus dem Model und gibt sie an die View weiter, um sie anzuzeigen. Mehr dazu und ein Android-Beispiel in allen Architekturmustern finden Sie hier: digigene.com/kategorie/Android/Android-Architektur
1 Stimmen
Sie werden genannt Architekturmuster no Entwurfsmuster . Wenn Sie den Unterschied wissen wollen, lesen Sie diese