MVC Framework Tutorial für Anfänger: Was ist, Architektur & Beispiel

Was ist MVC Framework?

Die Model-View-Controller (MVC) Framework ist ein Architekturmuster, das eine Anwendung in drei logische Hauptkomponenten unterteilt: Modell, Ansicht und Controller. Daher die Abkürzung MVC. Jede Architekturkomponente ist darauf ausgelegt, einen bestimmten Entwicklungsaspekt einer Anwendung abzuwickeln. MVC trennt die Geschäftslogik- und Präsentationsebene voneinander. Es wurde traditionell für grafische Benutzeroberflächen (GUIs) auf Desktops verwendet. Heutzutage ist die MVC-Architektur in der Webtechnologie für die Entwicklung von Webanwendungen sowie mobilen Apps beliebt geworden.

Geschichte von MVC

  • Die MVC-Architektur wurde erstmals 1979 von Trygve Reenskaug diskutiert.
  • Das MVC-Modell wurde erstmals 1987 in der Programmiersprache Smalltalk eingeführt.
  • MVC wurde erstmals 1988 in einem Artikel als allgemeines Konzept akzeptiert
  • In jüngster Zeit wird das MVC-Muster häufig in modernen Webanwendungen verwendet

Funktionen von MVC

  • Einfache und reibungslose Testbarkeit. Hoch testbares, erweiterbares und steckbares Framework
  • Um eine Web-Anwendungsarchitektur mit dem MVC-Muster zu entwerfen, bietet es volle Kontrolle über Ihr HTML sowie Ihre URLs
  • Nutzen Sie vorhandene Funktionen von ASP.NET, JSP, Django usw.
  • Klare Trennung der Logik: Modell, Ansicht, Controller. Trennung der Anwendungsaufgaben, d. h. Geschäftslogik, UL-Logik und Eingabelogik
  • URL-Routing für SEO-freundliche URLs. Leistungsstarkes URL-Mapping für verständliche und durchsuchbare URLs
  • Unterstützt Test Driven Development (TDD)

MVC Architektur

Hier ist die detaillierte Architektur des MVC-Frameworks:

MVC Architektur
MVC ArchiStrukturdiagramm

Drei wichtige MVC-Komponenten sind:

  • Modell: Es umfasst alle Daten und die zugehörige Logik
  • Ansicht: Präsentiert dem Benutzer Daten oder verwaltet die Benutzerinteraktion
  • Controller: Eine Schnittstelle zwischen Modell- und Ansichtskomponenten

Sehen wir uns diese Komponente im Detail an:

Anzeigen

Eine Ansicht ist der Teil der Anwendung, der die Darstellung von Daten darstellt.

Ansichten werden anhand der aus den Modelldaten gesammelten Daten erstellt. Eine Ansicht fordert das Modell auf, Informationen bereitzustellen, damit es dem Benutzer die Ausgabepräsentation präsentiert.

Die Ansicht stellt auch die Daten aus Diagrammen, Tabellen und Diagrammen dar. Beispielsweise enthält jede Kundenansicht alle UI-Komponenten wie Textfelder, Dropdowns usw.

Controller

Der Controller ist der Teil der Anwendung, der die Benutzerinteraktion abwickelt. Der Controller interpretiert die Maus- und Tastatureingaben des Benutzers und informiert das Modell und die Ansicht über entsprechende Änderungen.

Ein Controller sendet Befehle an das Modell, um seinen Status zu aktualisieren (z. B. Speichern eines bestimmten Dokuments). Der Controller sendet außerdem Befehle an die zugehörige Ansicht, um die Darstellung der Ansicht zu ändern (z. B. Scrollen in einem bestimmten Dokument).

Modell

Die Modellkomponente speichert Daten und die zugehörige Logik. Es stellt Daten dar, die zwischen Controller-Komponenten oder einer anderen zugehörigen Geschäftslogik übertragen werden. Beispielsweise ruft ein Controller-Objekt die Kundeninformationen aus der Datenbank ab. Es manipuliert Daten und sendet sie an die Datenbank zurück oder verwendet sie zum Rendern derselben Daten.

Es reagiert auf die Anfrage der Ansichten und reagiert auch auf Anweisungen des Controllers, sich selbst zu aktualisieren. Es ist auch die unterste Ebene des Musters, die für die Datenpflege verantwortlich ist.

MVC-Beispiele

Sehen wir uns ein Beispiel eines Model View Controllers aus dem täglichen Leben an:

Beispiel 1

MVC-Beispiele

  • Nehmen wir an, Sie gehen in ein Restaurant. Sie werden nicht in die Küche gehen und Essen zubereiten, was Sie sicherlich zu Hause tun können. Stattdessen gehen Sie dorthin und warten, bis der Kellner kommt.
  • Nun kommt der Kellner zu Ihnen und Sie bestellen das Essen. Der Kellner weiß nicht, wer Sie sind und was Sie wollen, er hat nur die Einzelheiten Ihrer Essensbestellung aufgeschrieben.
  • Dann geht der Kellner in die Küche. In der Küche bereitet der Kellner Ihr Essen nicht zu.
  • Der Koch bereitet Ihr Essen zu. Ihre Bestellung sowie Ihre Tischnummer werden dem Kellner übergeben.
  • Kochen Sie dann das zubereitete Essen für Sie. Er verwendet Zutaten, um das Essen zu kochen. Nehmen wir an, Sie bestellen ein Gemüsesandwich. Dann braucht er Brot, Tomaten, Kartoffeln, Paprika, Zwiebeln, Bites, Käse usw., die er aus dem Kühlschrank bezieht
  • Der Koch übergibt das Essen abschließend dem Kellner. Jetzt ist es die Aufgabe des Kellners, dieses Essen aus der Küche zu bringen.
  • Jetzt weiß der Kellner, welche Speisen Sie bestellt haben und wie sie serviert werden.

In diesem Beispiel einer MVC-Architektur

View= You
Waiter= Controller
Cook= Model
Refrigerator= Data

Sehen wir uns ein weiteres MVC-Modellbeispiel an:

Beispiel 2

MVC-Beispiele

Der Autoantriebsmechanismus ist ein weiteres Beispiel für das MVC-Modell.

  • Jedes Auto besteht aus drei Hauptteilen.
  • Ansicht = Benutzeroberfläche: (Schalthebel, Bedienfelder, Lenkrad, Bremse usw.)
  • Controller-Mechanismus (Motor)
  • Modell – Lagerung (Benzin- oder Dieseltank)

Ein motorbetriebenes Auto verbraucht Treibstoff aus dem Speicher, läuft aber nur über die genannten Benutzerschnittstellengeräte.

Beliebte MVC-Webframeworks

Hier ist eine Liste einiger beliebter MVC-Frameworks:

Vorteile von MVC: Hauptvorteile

Hier sind die wichtigsten Vorteile der Verwendung der MVC-Architektur:

  • Einfache Codepflege, die leicht zu erweitern und zu erweitern ist
  • Die MVC-Modellkomponente kann separat vom Benutzer getestet werden
  • Einfachere Unterstützung für neue Kundentypen
  • Die Entwicklung der verschiedenen Komponenten kann parallel erfolgen.
  • Es hilft Ihnen, Komplexität zu vermeiden, indem Sie eine Anwendung in die drei Einheiten Modell, Ansicht und Controller aufteilen.
  • Es verwendet nur ein Front-Controller-Muster, das Webanwendungsanforderungen über einen einzelnen Controller verarbeitet.
  • Bietet die beste Unterstützung für Testgetriebene Entwicklung
  • Es eignet sich gut für Web-Apps, die von großen Teams aus Webdesignern und -entwicklern unterstützt werden.
  • Bietet eine saubere Trennung der Belange (SoC).
  • Suchmaschinenoptimierung (SEO) freundlich.
  • Alle Klassen und Objekte sind unabhängig voneinander, sodass Sie sie separat testen können.
  • Das MVC-Entwurfsmuster ermöglicht die logische Gruppierung verwandter Aktionen auf einem Controller.

Nachteile der Verwendung von MVC

  • Es ist schwierig, dieses Modell zu lesen, zu ändern, Komponententests durchzuführen und wiederzuverwenden
  • Die Framework-Navigation kann manchmal komplex sein, da sie neue Abstraktionsebenen einführt, die von den Benutzern eine Anpassung an die Zerlegungskriterien von MVC erfordern.
  • Keine formelle Validierungsunterstützung
  • Erhöhte Komplexität und Ineffizienz der Daten
  • Die Schwierigkeit, MVC mit der modernen Benutzeroberfläche zu verwenden
  • Es besteht Bedarf an mehreren Programmierern, die parallel programmieren müssen.
  • Kenntnisse über mehrere Technologien sind erforderlich.
  • Pflege zahlreicher Codes im Controller

3-stufig Architecture vs. MVC Architektur

Parameter 3-Tier Architektur MVC Architektur
Kommunikation Diese Art von Architekturmuster kommuniziert nie direkt mit der Datenschicht. Alle Schichten kommunizieren direkt über die Dreieckstopologie.
Anwendungsbereich 3-stufig: Wird häufig in Webanwendungen verwendet, bei denen der Client, die Datenebenen und die Middleware auf physisch getrennten Plattformen ausgeführt werden. Wird im Allgemeinen für Anwendungen verwendet, die auf einer einzelnen grafischen Workstation ausgeführt werden.

Zusammenfassung

  • Das MVC ist ein Architekturmuster, das eine Anwendung in 1) Modell, 2) Ansicht und 3) Controller unterteilt.
  • Modell: Es umfasst alle Daten und die zugehörige Logik
  • Ansicht: Präsentiert dem Benutzer Daten oder verwaltet die Benutzerinteraktion
  • Controller: Eine Schnittstelle zwischen Modell- und Ansichtskomponenten
  • Die MVC-Architektur wurde erstmals 1979 von Trygve Reenskaug diskutiert.
  • MVC-Architektur in Java ist ein hochgradig testbares, erweiterbares und steckbares Framework
  • Einige beliebte MVC-Frameworks sind Rails, Zend Framework, CodeIgniter, Laravel, Fuel PHP usw.