MVC ArchiArchitektur und Rahmenwerk mit Beispielen
โก Intelligente Zusammenfassung
Model-View-Controller (MVC) ist ein Architekturmuster, das eine Anwendung in drei Komponenten unterteilt โ Model, View und Controller โ und dabei die Geschรคftslogik von der Prรคsentationsschicht trennt, um mithilfe von Frameworks wie Spring, Django und Laravel wartbare und testbare Web- und Desktop-Anwendungen zu erstellen.

Was ist MVC Framework?
Das 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 letzter Zeit findet das MVC-Muster breite Anwendung in modernen Webanwendungen.
Funktionen von MVC
- Einfache und reibungslose Testbarkeit. Hoch testbares, erweiterbares und steckbares Framework
- Um eine Webanwendungsarchitektur mithilfe des MVC-Musters zu entwerfen, bietet es die volle Kontrolle รผber Ihr HTML sowie รผber 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. Mรคchtig URL-Karteping fรผr verstรคndliche und durchsuchbare URLs
- Unterstรผtzt Test Driven Development (TDD)
MVC Architektur
Nachdem die Vorteile nun klar sind, folgt hier die detaillierte Architektur des MVC-Frameworks:

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
Schauen wir uns die einzelnen Komponenten im Detail an:
Ansehen
Eine Ansicht ist der Teil der Anwendung, der die Darstellung von Daten darstellt.
Ansichten werden aus den aus den Modelldaten gesammelten Daten erstellt. Eine Ansicht fordert vom Modell Informationen an, um die Ausgabedarstellung fรผr den Benutzer zu prรคsentieren.
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 verarbeitet. Er interpretiert die Maus- und Tastatureingaben des Benutzers und veranlasst das Modell und die Ansicht, sich entsprechend anzupassen.
Ein Controller sendet Befehle an das Modell, um dessen Zustand zu aktualisieren (z. B. das Speichern eines bestimmten Dokuments). Der Controller sendet auรerdem Befehle an die zugehรถrige Ansicht, um deren Darstellung zu รคndern (z. B. das Scrollen eines bestimmten Dokuments).
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 Anfragen der Ansichten und auf Anweisungen des Controllers zur Aktualisierung. Es stellt auรerdem die unterste Ebene des Musters dar und ist fรผr die Datenverwaltung zustรคndig.
MVC-Beispiele
Sehen wir uns ein Beispiel eines Model View Controllers aus dem tรคglichen Leben an:
Beispiel 1
- 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
Der Autoantriebsmechanismus ist ein weiteres Beispiel fรผr das MVC-Modell.
- Jedes Auto besteht aus drei Hauptteilen.
- Ansicht: Benutzeroberflรคche: (Schalthebel, Bedienelemente, 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:
- Ruby on Rails
- Django
- KuchenPHP
- Yรผ
- CherryPy
- Feder MVC
- Katalysatoren
- Schienen
- Zend Framework
- CodeZรผnder
- Laravel
- Kraftstoff-PHP
- Symphony
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.
- Gewรคhrleistet eine klare Trennung der Belange (Separation of Concerns, SoC).
- Suchmaschinenoptimierung (SEO) freundlich.
- Alle Klassen und Objekte sind unabhรคngig voneinander, sodass Sie sie separat testen kรถnnen.
- Das MVC-Entwurfsmuster ermรถglicht logische Gruppierungenping von zusammengehรถrigen Aktionen auf einem Controller.
Nachteile der Verwendung von MVC
- Es ist schwierig, dieses Modell zu lesen, zu รคndern, Komponententests durchzufรผhren und wiederzuverwenden
- Die Navigation im Framework kann mitunter komplex sein, da sie neue Abstraktionsebenen einfรผhrt.traction, die von den Benutzern verlangt, sich an die Dekompositionskriterien von MVC anzupassen.
- 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. |


