Unterschied: MVC steht für „Model-View-Controller“, MVP steht für „Model-View-Presenter“, MVVM steht für „Model-View-ViewModel“; MVP und MVVM sind beide von MVC abgeleitet . In MVC liest View Daten direkt aus Model; in MVP verwendet View Model nicht direkt.
MVC, MVP und MVVM sind drei beliebte Designmuster. Unter diesen steht MVC für Model-View-Controller, MVP für Model-View-Presenter und MVVM für Model-View-View-Modell. MVP und MVVM sind beide von MVC abgeleitet. Alle diese Entwurfsmuster helfen im Allgemeinen bei der Entwicklung lose zusammengesetzter Anwendungen, die einfach zu testen und zu warten sind.
1. MVC (Model-View-Controller)
MVC ist ein relativ intuitives Architekturmuster, das ursprünglich in der serverseitigen Webentwicklung verwurzelt ist Später erlangte ich nach und nach Kompetenz in der clientseitigen Webentwicklung und konnte deren Komplexität und Vielfältigkeit bewältigen.
MVC-Muster unterteilt die Anwendung in drei Teile:
● Modell: Modell (wird verwendet, um die Geschäftslogik im Zusammenhang mit den Anwendungsdaten zu kapseln und Datenverarbeitungsmethoden)
● Ansicht: Ansicht (gerenderte Seite)
●Controller: Controller (Verbindungsstück zwischen M und V, wird zur Steuerung des Anwendungsprozesses und der Geschäftslogik der Seite verwendet)
MVC-Funktionen:
Das Merkmal des MVC-Modells besteht darin, eine Trennung von Belangen zu erreichen, d. h. die logische Entkopplung von Datenmodell und Geschäft sowie der Anzeige in der Anwendung. Bei der clientseitigen Webentwicklung ist der Code getrennt und lose zwischen dem Modell (M-Daten, Betriebsdaten) und der Ansicht (V-HTML-Element, das Daten anzeigt) gekoppelt, was die Entwicklung, Wartung und das Testen der Clientanwendung erleichtert.
Benutzeroperation->View (verantwortlich für den Empfang von Benutzereingabeoperationen)->Controller (Geschäftslogikverarbeitung)->Modell (Datenpersistenz)->View (Rückführung der Ergebnisse an View):
1. View sendet Anweisungen an den Controller
2. Nachdem der Controller die Geschäftslogik abgeschlossen hat, muss das Modell den Status ändern.
3. Das Modell sendet neue Daten an View , Benutzer erhalten Feedback.
2. MVP (Model-View-Presenter)
MVP ersetzt den Controller in MVC durch den Presenter (Präsentation), Der Zweck besteht darin, die Verbindung zwischen Ansicht und Modell vollständig zu unterbrechen, wobei Presenter als Brücke fungiert, um die Kommunikationsrichtung zwischen Ansicht und Modell vollständig zu isolieren.
MVP-Funktionen:
● Zwei-Wege-Kommunikation zwischen M, V und P.
● Es gibt keine Kommunikation zwischen Ansicht und Modell und sie werden alle über Presenter bereitgestellt. Presenter trennt Modell und Ansicht vollständig und die Hauptprogrammlogik ist in Presenter implementiert.
● View ist sehr dünn und stellt keine Geschäftslogik bereit. Es wird als „Passive View“ bezeichnet, das heißt, es verfügt über keine Initiative, während Presenter sehr dick ist und die gesamte Logik dort bereitgestellt wird.
● Der Presenter steht nicht in direktem Zusammenhang mit der spezifischen Ansicht, sondern interagiert über eine definierte Schnittstelle, sodass der Presenter bei einer Änderung der Ansicht unverändert bleiben und wiederverwendet werden kann. Darüber hinaus können Sie auch eine Testansicht schreiben, um verschiedene Benutzervorgänge zu simulieren, um den Presenter zu testen – wodurch die Verwendung automatisierter Testtools entfällt.
3. MVVM (Model-View-ViewModel)
Der MVVM-Modus benennt Presenter in ViewModel um, was im Grunde dasselbe ist wie MVP-Modus Völlig konsistent. Wenn MVP eine weitere Verbesserung von MVC ist, dann ist MVVM ein völliger Umdenken. Der Kern liegt auf der Idee der „bidirektionalen Bindung von Datenmodelldaten“, sodass keine Verbindung zwischen Ansicht und Modell besteht. Die Interaktion erfolgt über ViewModel, und die Interaktion zwischen Modell und ViewModel erfolgt also in beide Richtungen Änderungen an den Daten der Ansicht werden durchgeführt. Gleichzeitig wird die Datenquelle geändert, und Änderungen an den Datenquellendaten werden sofort in der Ansicht widergespiegelt.
Zusammenfassung:
In MVC liest View Daten direkt vom Modell statt über den Controller; Es besteht eine Viele-zu-Eins-Beziehung zwischen Ansicht und Controller.
In MVP verwendet View das Modell nicht direkt. Die Kommunikation zwischen ihnen erfolgt über Presenter (Controller in MVC). Alle Interaktionen erfolgen innerhalb der Eins-zu-Eins-Beziehung von Presenter.
Der MVVM-Modus ist im Grunde derselbe wie der MVP-Modus. Der einzige Unterschied besteht darin, dass MVVM eine bidirektionale Bindung (Datenbindung) verwendet: Änderungen in View werden automatisch in ViewModel widergespiegelt und umgekehrt.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MVC, MVP und MVVM?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!