logo

Einführung in das MVC-Framework

In den letzten Jahren haben sich Websites von einfachen HTML-Seiten mit etwas CSS zu unglaublich komplexen Anwendungen entwickelt, an denen Tausende von Entwicklern gleichzeitig arbeiten. Um mit diesen komplexen Webanwendungen zu arbeiten, verwenden Entwickler unterschiedliche Entwurfsmuster zur Gestaltung ihrer Projekte, um den Code weniger komplex und einfacher zu gestalten. Das beliebteste dieser Muster ist MVC auch bekannt als Model View Controller.

Was ist MVC?

Der Model-View-Controller (MVC) Framework ist ein Architektur-/Designmuster, das eine Anwendung in drei logische Hauptkomponenten unterteilt Modell , Sicht , Und Regler . Jede Architekturkomponente ist darauf ausgelegt, bestimmte Entwicklungsaspekte einer Anwendung zu bewältigen. Es isoliert die Geschäftslogik und die Präsentationsschicht voneinander. Es wurde traditionell für den Desktop verwendet Grafische Benutzeroberflächen (GUIs) . Heutzutage ist MVC eines der am häufigsten verwendeten branchenüblichen Webentwicklungs-Frameworks zur Erstellung skalierbarer und erweiterbarer Projekte. Es wird auch zum Entwerfen mobiler Apps verwendet.



MVC wurde erstellt von Trygve Reenskaug . Das Hauptziel dieses Entwurfsmusters bestand darin, das Problem zu lösen, dass Benutzer einen großen und komplexen Datensatz kontrollieren, indem sie eine große Anwendung in bestimmte Abschnitte aufteilen, die alle ihren eigenen Zweck haben.

Funktionen von MVC:

  • Es sorgt für eine klare Trennung von Geschäftslogik, UI-Logik und Eingabelogik.
  • Es bietet vollständige Kontrolle über Ihr HTML und Ihre URLs, was das Entwerfen einer Webanwendungsarchitektur erleichtert.
  • Es handelt sich um eine leistungsstarke URL-Mapping-Komponente, mit der wir Anwendungen erstellen können, die über verständliche und durchsuchbare URLs verfügen.
  • Es unterstützt Testgetriebene Entwicklung (TDD).

Weitere Informationen zu den Vorteilen der Verwendung des MVC Framework finden Sie im Artikel – Vorteile der Verwendung des MVC-Frameworks

Komponenten von MVC:

Das MVC-Framework umfasst die folgenden 3 Komponenten:



  • Regler
  • Modell
  • Sicht

MVC-Architekturdesign

Regler:

Der Controller ist die Komponente, die die Verbindung zwischen den Ansichten und dem Modell ermöglicht und somit als Vermittler fungiert. Der Controller muss sich nicht um die Handhabung der Datenlogik kümmern, er teilt dem Modell lediglich mit, was zu tun ist. Es verarbeitet die gesamte Geschäftslogik und eingehende Anfragen und manipuliert Daten mithilfe des Modell Komponente und interagieren mit der Sicht um die endgültige Ausgabe zu rendern.

Java-Multithreading

Sicht:

Der Sicht Die Komponente wird für die gesamte UI-Logik der Anwendung verwendet. Es generiert eine Benutzeroberfläche für den Benutzer. Ansichten werden anhand der von der Modellkomponente erfassten Daten erstellt. Diese Daten werden jedoch nicht direkt, sondern über den Controller erfasst. Es interagiert nur mit dem Controller.



Modell:

Der Modell Die Komponente entspricht der gesamten datenbezogenen Logik, mit der der Benutzer arbeitet. Dies kann entweder die Daten darstellen, die zwischen den View- und Controller-Komponenten übertragen werden, oder andere Daten im Zusammenhang mit der Geschäftslogik. Es kann Daten zur Datenbank hinzufügen oder daraus abrufen. Es reagiert auf die Anfrage des Controllers, da der Controller nicht selbst mit der Datenbank interagieren kann. Das Modell interagiert mit der Datenbank und gibt die erforderlichen Daten an den Controller zurück.

Funktionsweise des MVC-Frameworks anhand eines Beispiels:

Stellen wir uns vor, ein Endbenutzer sendet eine Anfrage an einen Server, um eine Liste der Schüler einer Klasse zu erhalten. Der Server würde diese Anfrage dann an den jeweiligen Controller senden, der für die Schüler zuständig ist. Dieser Controller würde dann das Modell, das die Schüler verwaltet, auffordern, eine Liste aller Schüler einer Klasse zurückzugeben.

Der Datenfluss in MVC-Komponenten

Das Modell würde die Datenbank nach der Liste aller Schüler abfragen und diese Liste dann an den Controller zurückgeben. Wenn die Antwort vom Modell erfolgreich war, forderte der Controller die mit den Schülern verknüpfte Ansicht auf, eine Präsentation der Schülerliste zurückzugeben. Diese Ansicht würde die Liste der Schüler vom Controller übernehmen und die Liste in HTML rendern, das vom Browser verwendet werden kann.

Der Controller würde dann diese Präsentation nehmen und sie an den Benutzer zurücksenden. Damit ist die Anfrage beendet. Wenn das Modell zuvor einen Fehler zurückgegeben hat, behandelt der Controller diesen Fehler, indem er die Ansicht, die Fehler verarbeitet, auffordert, eine Darstellung für diesen bestimmten Fehler zu rendern. Diese Fehlerdarstellung würde dann anstelle der Schülerlistendarstellung an den Benutzer zurückgegeben werden.

Wie wir aus dem obigen Beispiel sehen können, verarbeitet das Modell alle Daten. Die Ansicht verwaltet alle Präsentationen und der Controller teilt dem Modell und der Ansicht lediglich mit, was zu tun ist. Dies ist die grundlegende Architektur und Funktionsweise des MVC-Frameworks.

So geben Sie ein Java-Array zurück

Das MVC-Architekturmuster ermöglicht es uns, die folgenden Designprinzipien einzuhalten:
1. Teile und herrsche. Die drei Komponenten können einigermaßen unabhängig voneinander gestaltet werden.
2. Zusammenhalt stärken. Die Komponenten haben eine stärkere Ebenenkohäsion, als wenn Ansicht und Controller zusammen in einer einzigen UI-Ebene wären.
3. Kopplung reduzieren. Die Kommunikationskanäle zwischen den drei Komponenten sind minimal und leicht zu finden.
4. Erhöhen Sie die Wiederverwendung. Die Ansicht und der Controller nutzen normalerweise in großem Umfang wiederverwendbare Komponenten für verschiedene Arten von UI-Steuerelementen. Die Benutzeroberfläche wird jedoch anwendungsspezifisch und kann daher nicht einfach wiederverwendet werden.
5. Design für Flexibilität. Normalerweise ist es recht einfach, die Benutzeroberfläche zu ändern, indem Sie die Ansicht, den Controller oder beides ändern.

Vorteile von MVC:

  • Codes sind einfach zu pflegen und können problemlos erweitert werden.
  • Der MVC Modell Komponente kann separat getestet werden.
  • Die Komponenten von MVC können gleichzeitig entwickelt werden.
  • Es reduziert die Komplexität, indem es eine Anwendung in drei Einheiten unterteilt. Modell, Ansicht und Controller.
  • Es unterstützt Testgetriebene Entwicklung (TDD).
  • Es eignet sich gut für Web-Apps, die von großen Teams aus Webdesignern und -entwicklern unterstützt werden.
  • Diese Architektur hilft, Komponenten unabhängig voneinander zu testen, da alle Klassen und Objekte unabhängig voneinander sind
  • Suchmaschinenoptimierung (SEO) Freundlich.

Nachteile von MVC:

  • Es ist schwierig, dieses Modell zu lesen, zu ändern, zu testen und wiederzuverwenden
  • Es ist nicht für die Erstellung kleiner Anwendungen geeignet.
  • Die Ineffizienz des Datenzugriffs im Blick.
  • Die Framework-Navigation kann komplex sein, da sie neue Abstraktionsebenen einführt, die von den Benutzern eine Anpassung an die Zerlegungskriterien von MVC erfordern.
  • Erhöhte Komplexität und Ineffizienz der Daten

Beliebte MVC-Frameworks:

Einige der beliebtesten und am häufigsten verwendeten MVC-Frameworks sind unten aufgeführt.

  • Ruby auf Schienen
  • Django
  • CherryPy
  • Frühlings-MVC
  • Katalysator
  • Schienen
  • Zend Framework
  • Treibstoff PHP
  • Laravel
  • Symphonie

MVC wird im Allgemeinen für Anwendungen verwendet, die auf einer einzelnen grafischen Workstation ausgeführt werden. Die Aufteilung in logische Komponenten ermöglicht Lesbarkeit und Modularität und macht es für den Testteil komfortabler.