MVC, MVP, MVVM: Welches soll man wählen?

MVC, MVP, MVVM: Welches soll man wählen?

Moderne Anwendungen benötigen eine solche Vielfalt an Funktionen, dass der Prozess ihrer Entwicklung an Umfang und Komplexität zugenommen hat. Als Hilfestellung können Sie ein architektonisches Entwurfsmuster verwenden. Sie unterstützen die Erstellung von Anwendungen, die einfach zu testen und zu warten sind.





Die drei beliebtesten Entwurfsmuster sind MVC, MVP und MVVM. MVC steht für Model, View und Controller, während MVP für Model, View und Presenter und MVVM für Model, View und View Model steht.





Architektur- und Designmuster

Architektonisches Muster

Ein Architekturmuster verdeutlicht und definiert einige entscheidende Komponenten einer Softwarearchitektur. Auch wenn ein architektonisches Muster ein Bild eines Systems vermittelt, es ist keine Architektur . Tatsächlich ist es eine allgemeine und wiederverwendbare Lösung für ein häufig auftretendes Problem in der Softwarearchitektur in einem bestimmten Kontext.





Entwurfsmuster

Ein Entwurfsmuster ist eine formalisierte Best Practice, die Sie verwenden können, um allgemeine Probleme beim Entwerfen einer Anwendung oder eines Systems zu lösen.

Der Unterschied zwischen Architektur- und Designmuster

Beginnen wir mit dem gebräuchlichen Begriff – Muster. In der Software ist ein Muster eine wiederkehrende Eigenschaft, mit der Sie eine riesige und komplexe Struktur in kleinere, einfachere Komponenten zerlegen können. Sie können dieses Muster verwenden, um eine allgemeine Lösung für eine Klasse von Problemen zu erstellen.



Auf jeder Ebene der Softwareentwicklung verwenden Sie unterschiedliche Tools. Auf kleineren Ebenen sind diese Werkzeuge Entwurfsmuster. Architektonische Muster existieren auf größeren Ebenen, und Programmierparadigmen auf der Umsetzungsebene.

Warum brauchen wir architektonische Entwurfsmuster?

Während der Softwareentwicklung können Sie architektonische Entwurfsmuster verwenden, um allgemeine Probleme zu lösen. Gute Architektur kann Ihnen auch dabei helfen:





  • Teilen Sie komplexe Aufgaben in einfachere Aufgaben auf.
  • Fehler reduzieren.
  • Produzieren Sie testbaren und wartbaren Code.

Aber ohne ein Architekturmuster können Sie Schwierigkeiten haben, die Geschäftslogik Ihrer App aufrechtzuerhalten.

Model, View, ViewModel, Controller und Presenter

Bevor Sie sich die einzelnen Muster ansehen, hier sind die Begriffe, aus denen sie bestehen:





Wort, wie man die Linie loswird
  • Modell speichert Daten und kommuniziert direkt mit der Datenbank. Model ist der Teil, der Ihre Daten und Anwendungslogik darstellt. Es definiert die Geschäftsregeln, die die Handhabung, Änderung oder Verarbeitung von Daten verwalten.
  • Aussicht zeigt die Daten des Modells an und ist für die Darstellung der Daten in der Benutzeroberfläche verantwortlich.
  • ViewModel ist exklusiv für MVVM-Muster. Dies ist eine Abstraktion der Ansichtsschicht und fungiert auch als Wrapper für die Modelldaten.
  • Regler ist die Komponente, die die Ansicht und das Modell integriert.
  • Moderator ist eine Komponente, die nur im MVP-Modell vorhanden ist. Presenter erhält die Eingaben von der Ansichtskomponente und verarbeitet die Daten mit Hilfe des Modells.

MVC-, MVP- und MVVM-Muster

Model-View-Controller-Muster

Das MVC-Architekturmuster war die erste und ist heute im Bereich der Webanwendungen beliebt. Es wurde in den 1970er Jahren eingeführt. Mit diesem Muster können Sie eine Anwendung rund um die Trennung von Bedenken (SoC) erstellen. Es verringert den Aufwand, den Sie zum Testen, Warten und Entwickeln Ihrer Anwendung benötigen.

Im MVC-Muster hat das Modell kein Verständnis für die Ansicht oder den Controller. Der Beobachter des Modells erhält eine Warnung, wenn sich die Ansicht und der Controller ändern. Der Controller hilft dem Routing-Prozess, das Modell mit der relevanten Ansicht zu verbinden.

Einige der Vorteile des MVC-Musters sind:

  • Trennung von Anliegen (konzentrierter).
  • Erleichtert das Testen und Verwalten des Codes.
  • Fördert die Entkopplung der Anwendungsschichten.
  • Bessere Organisation und Wiederverwendbarkeit des Codes.

So funktioniert MVC:

  Bild eines Diagramms, das die Funktionsweise von MVC veranschaulicht

Aufgrund des SoC kann MVC die Codegröße reduzieren und einen guten Code erstellen, der sauber und überschaubar ist.

So beenden Sie einen Entschuldigungsbrief

Model-View-Presenter-Muster

Das MVP-Muster teilt zwei Komponenten mit MVC: Modell und Ansicht. Es ersetzt den Controller durch den Presenter. Der Präsentator wird – wie der Name schon sagt – verwendet, um etwas zu präsentieren. Es ermöglicht Ihnen, die Ansicht leichter zu verspotten.

In MVP hat der Präsentator die Funktionalität des „Mittelsmanns“, da ihm die gesamte Präsentationslogik übertragen wird. Ansicht und Moderator sind in MVP ebenfalls unabhängig voneinander und interagieren über eine Schnittstelle.

Hier ist eine Illustration, wie das MVP-Muster funktioniert:

  Bild eines Diagramms, das die Funktionsweise von MVP veranschaulicht

Der Präsentator erhält Eingaben vom Benutzer über die Ansicht. Anschließend verarbeitet es die Aktionen des Benutzers mit Hilfe des Modells und übergibt die Ergebnisse an die Ansicht zurück. Der Präsentator kommuniziert mit der Ansicht über Schnittstellen.

Model-View-ViewModel-Muster

MVVM ist die moderne Weiterentwicklung von MVC. Das Hauptziel von MVVM ist es, eine klare Trennung zwischen der Domänenlogik und der Präsentationsschicht bereitzustellen. MVVM unterstützt die bidirektionale Datenbindung zwischen der Ansicht und dem Ansichtsmodell.

Mit dem MVVM-Muster können Sie die Ansicht und das Modell Ihres Codes trennen. Dies bedeutet, dass sich die Ansicht nicht ändern muss, wenn sich das Modell ändert, und umgekehrt. Mit einem Ansichtsmodell können Sie Komponententests durchführen und Ihr logisches Verhalten testen, ohne Ihre Ansicht einzubeziehen.

Hier ist eine Illustration, wie MVVM funktioniert:

So reduzieren Sie die Größe einer JPEG-Datei
  Bild eines Diagramms, das die Funktionsweise von MVVM veranschaulicht

Wann sollten MVC, MVP und MVVM verwendet werden?

Nachdem Sie nun die einzelnen Muster kennengelernt haben, finden Sie heraus, wann Sie sie verwenden.

Wann sollte MVC verwendet werden?

MVC ist einfach eine Implementierung von Separation of Concerns. Wenn Ihre Anwendung die Daten (Modell), die Datenverarbeitung (Controller) und die Datenpräsentation (Ansicht) trennen muss, funktioniert MVC gut. MVC eignet sich auch gut für Anwendungen, bei denen sich die Datenquelle und/oder die Datenpräsentation jederzeit ändern können.

Wann MVP verwendet werden sollte

Sie können MVP verwenden, wenn Ihre Anwendung einen bidirektionalen Fluss hat. Wenn Benutzerinteraktionen etwas vom Modell anfordern müssen und das Ergebnis dieser Anforderung die Benutzeroberfläche sofort ändert, ziehen Sie MVP in Betracht.

Wann sollte MVVM verwendet werden?

Sie sollten MVVM verwenden, wenn:

  • Sie müssen ein Projekt mit einem Designer teilen und die Design- und Entwicklungsarbeit kann unabhängig voneinander erfolgen.
  • Sie benötigen Komponententests für Ihre Lösungen.
  • Sie benötigen wiederverwendbare Komponenten, sowohl innerhalb als auch zwischen Projekten in Ihrer Organisation.
  • Sie möchten mehr Flexibilität beim Ändern Ihrer Ansichten, ohne andere Logik in der Codebasis umgestalten zu müssen.

Welches Muster sollten Sie wählen?

Der Hauptgrund für die Verwendung eines Entwurfsmusters besteht darin, die Komplexität zu reduzieren. Sie können dies tun, indem Sie die Gesamtkomplexität reduzieren oder ungewohnte Komplexität durch vertraute ersetzen. Wenn ein Entwurfsmuster die Komplexität nicht auf eine dieser beiden Arten reduzieren kann, verwenden Sie keines davon. es wird keinerlei Mehrwert bringen.

Wenn Sie wirklich sicher sind, dass Sie ein Designmuster verwenden sollten, versuchen Sie, eine Checkliste zu erstellen. Basieren Sie es auf den Situationen, die Sie hier gesehen haben, und wählen Sie die beste Lösung für Ihr Projekt.