Erkunden der Entwurfsmuster für MVC, MVP und MVVM

Die Benutzeroberfläche enthält häufig viel überfüllten Code, vor allem aufgrund der komplizierten Logik, die sie verarbeiten muss. Die Präsentationsmuster sind in erster Linie mit dem Ziel entworfen, den komplexen Code in der Präsentationsschicht zu reduzieren und den Code in der Benutzeroberfläche sauber und verwaltbar zu machen. In diesem Beitrag werde ich eine Diskussion über die MVC-, MVP- und MVVM-Entwurfsmuster präsentieren und hervorheben, wann eines das Design der Wahl gegenüber dem anderen sein sollte.

Model View Controller

Mit dem Model View Controller-Framework (allgemein als MVC bekannt) können Sie Anwendungen erstellen, die einfacher zu testen und zu warten sind. Es besteht aus drei Hauptkomponenten, nämlich:

  1. Modell - Dies ist die Ebene, die die Daten der Anwendung darstellt
  2. Ansicht - Dies repräsentiert die Präsentation oder die Benutzeroberfläche
  3. Controller - Diese Schicht enthält normalerweise die Geschäftslogik Ihrer Anwendung

Das Hauptziel des MVC-Entwurfsmusters ist die Trennung von Bedenken, um die Testbarkeit zu erleichtern. Mit dem Entwurfsmuster des Model View Controllers können Sie die Bedenken eingrenzen und den Code Ihrer Anwendung einfacher testen und warten. In einem typischen MVC-Entwurf kommt die Anforderung zuerst bei der Steuerung an, die das Modell mit der entsprechenden Ansicht verbindet. Im MVC-Entwurfsmuster verwenden die Ansicht und der Controller das Strategiedesign, und die Ansicht und das Modell werden mithilfe des Beobachterdesigns synchronisiert. Daher können wir sagen, dass MVC ein zusammengesetztes Muster ist. Der Controller und die Ansicht sind lose miteinander verbunden, und ein Controller kann von mehreren Ansichten verwendet werden. Die Ansicht abonniert die Änderungen im Modell.

Model View Presenter

Das MVP-Entwurfsmuster (Model View Presenter) besteht ebenfalls aus drei Komponenten - dem Modell, der Ansicht und dem Präsentator. Im MVP-Entwurfsmuster wird der Controller (in MVC) durch den Presenter ersetzt. Im Gegensatz zum MVC-Entwurfsmuster verweist der Präsentator auf die Ansicht, wodurch das Verspotten der Ansicht einfacher ist und Unit-Tests von Anwendungen, die das MVP-Entwurfsmuster gegenüber dem MVC-Entwurfsmuster nutzen, viel einfacher sind. Im MVP-Entwurfsmuster bearbeitet der Präsentator das Modell und aktualisiert auch die Ansicht. Es gibt zwei Variationen dieses Designs. Dazu gehören die folgenden.

  1. Passive Ansicht - Bei dieser Strategie kennt die Ansicht das Modell nicht und der Präsentator aktualisiert die Ansicht, um die Änderungen im Modell widerzuspiegeln.
  2. Supervising Controller - Bei dieser Strategie interagiert die Ansicht direkt mit dem Modell, um Daten ohne Eingreifen des Präsentators an die Datensteuerelemente zu binden. Der Präsentator ist für die Aktualisierung des Modells verantwortlich. Die Ansicht wird nur bei Bedarf bearbeitet, wenn eine komplexe Benutzeroberflächenlogik ausgeführt werden muss.

Während diese beiden Varianten die Testbarkeit der Präsentationslogik fördern, wird die passive Ansichtsvariante in Bezug auf die Testbarkeit der anderen Variante (Überwachungscontroller) vorgezogen, da die gesamte Ansichtslogik im Präsentator aktualisiert ist.

Das MVP-Entwurfsmuster wird MVC vorgezogen, wenn Ihre Anwendung Unterstützung für mehrere Benutzerschnittstellentechnologien bieten muss. Es wird auch bevorzugt, wenn Sie eine komplexe Benutzeroberfläche mit viel Benutzerinteraktion haben. Wenn Sie einen automatisierten Komponententest auf der Benutzeroberfläche Ihrer Anwendung wünschen, ist das MVP-Entwurfsmuster gut geeignet und wird dem herkömmlichen MVC-Entwurf vorgezogen.

Model - View - ViewModel (MVVM)

Das Modell - Ansicht - AnsichtModell (MVVM) ist eine Variation des Entwurfsmusters des Präsentationsmodells von Martin Fowler. Das MVVM ist eine Weiterentwicklung des beliebten MVC-Designs, und das ViewModel in MVVM wird zur Erleichterung der Präsentationstrennung verwendet. In der MVVM wird die Logik im Presenter gespeichert und die Ansicht ist vollständig vom Modell isoliert. Während der Präsentator die Ansicht nicht kennt, kennt die Ansicht den Präsentator - der Präsentator in MVVM wird verwendet, um eine abstrakte Ansicht der Benutzeroberfläche darzustellen. Eine passive Ansicht impliziert, dass die Ansicht keine Kenntnis des Modells hat. Im MVVM-Entwurfsmuster ist die Ansicht aktiv und enthält Verhaltensweisen, Ereignisse und Datenbindungsinformationen. Beachten Sie, dass die Ansicht in MVVM nicht für die Verwaltung der Statusinformationen verantwortlich ist. Die Ansicht ist vielmehr mit dem Ansichtsmodell synchronisiert.Das Ansichtsmodell in MVVM ist für die Präsentationstrennung verantwortlich und stellt Methoden und Befehle bereit, um den Status einer Ansicht zu verwalten und das Modell zu bearbeiten.

Wie kommunizieren die Ansicht und das Ansichtsmodell in MVVM? Nun, die Ansicht und das Ansichtsmodell in MVVM kommunizieren mithilfe von Methoden, Eigenschaften und Ereignissen. Die bidirektionale Datenbindung oder die bidirektionale Datenbindung zwischen der Ansicht und dem Ansichtsmodell stellt sicher, dass die Modelle und Eigenschaften im Ansichtsmodell mit der Ansicht synchron sind. Das MVVM-Entwurfsmuster eignet sich gut für Anwendungen, die Unterstützung für die bidirektionale Datenbindung benötigen.