Das MVC-Framework ist ein Entwurfsmuster, das die Trennung von Eingabe, Verarbeitung und Ausgabe der Anwendung erzwingt, sodass dasselbe Programm unterschiedliche Darstellungen verwenden kann.
MVC
(Model View Controler) existierte ursprünglich im Desktop-Programm, V bezieht sich auf die Benutzeroberfläche und C bezieht sich auf den Controller. Der Zweck der Verwendung von MVC besteht darin, die Implementierungscodes von M und V zu trennen, sodass dasselbe Programm unterschiedliche Darstellungen verwenden kann. Sie können beispielsweise einen Stapel statistischer Daten in Balkendiagrammen bzw. Kreisdiagrammen darstellen. Der Zweck von C besteht darin, die Synchronisation von M und V sicherzustellen. Sobald sich M ändert, sollte V synchron aktualisiert werden.
Model-View-Controller (MVC) ist ein Software-Designmuster, das von Xerox PARC in den 1980er Jahren für die Programmiersprache Smalltalk-80 erfunden wurde und heute weit verbreitet ist. In den letzten Jahren wurde es als Entwurfsmuster für die J2EE-Plattform von Sun empfohlen und wird von immer mehr Entwicklern begrüßt, die ColdFusion und PHP verwenden. Das Model-View-Controller-Muster ist eine nützliche Toolbox, die viele Vorteile, aber auch einige Nachteile hat.
So funktioniert MVC
MVC ist ein Entwurfsmuster, das die Trennung von Eingabe, Verarbeitung und Ausgabe einer Anwendung erzwingt. Anwendungen, die MVC verwenden, sind in drei Kernkomponenten unterteilt: Modell, Ansicht und Controller. Sie erledigen jeweils ihre eigenen Aufgaben.
Ansicht
Eine Ansicht ist die Schnittstelle, die Benutzer sehen und mit der sie interagieren. Bei altmodischen Webanwendungen ist die Ansicht eine Schnittstelle, die aus HTML-Elementen besteht. In Webanwendungen neuen Stils spielt HTML immer noch eine wichtige Rolle in der Ansicht, aber es sind immer wieder neue Technologien entstanden, darunter Macromedia Flash und einige Auszeichnungssprachen und Webdienste wie XHTML, XML/XSL, WML usw.
Der Umgang mit der Benutzeroberfläche der Anwendung wird immer anspruchsvoller. Einer der großen Vorteile von MVC besteht darin, dass es viele verschiedene Ansichten für Ihre Anwendung verarbeiten kann. In der Ansicht findet keine echte Verarbeitung statt, unabhängig davon, ob die Daten online oder in einer Mitarbeiterliste gespeichert sind. Sie dient lediglich dazu, die Daten auszugeben und dem Benutzer die Möglichkeit zu geben, sie zu bearbeiten.
Modell
Modell repräsentiert Unternehmensdaten und Geschäftsregeln. Unter den drei Komponenten von MVC hat das Modell die meisten Verarbeitungsaufgaben. Beispielsweise könnten Komponentenobjekte wie EJBs und ColdFusion-Komponenten für die Verwaltung von Datenbanken verwendet werden. Die vom Modell zurückgegebenen Daten sind neutral, was bedeutet, dass das Modell nichts mit dem Datenformat zu tun hat, sodass ein Modell Daten für mehrere Ansichten bereitstellen kann. Die Codeduplizierung wird reduziert, da der auf das Modell angewendete Code nur einmal geschrieben werden muss und von mehreren Ansichten wiederverwendet werden kann.
Controller
Der Controller akzeptiert Benutzereingaben und ruft Modelle und Ansichten auf, um die Anforderungen des Benutzers zu erfüllen. Wenn also auf einer Webseite auf einen Hyperlink geklickt und ein HTML-Formular gesendet wird, gibt der Controller selbst nichts aus und führt keine Verarbeitung durch. Es empfängt lediglich die Anforderung und entscheidet, welche Modellkomponente aufgerufen werden soll, um die Anforderung zu verarbeiten. Anschließend wird festgelegt, welche Ansicht zum Anzeigen der von der Modellverarbeitung zurückgegebenen Daten verwendet werden soll.
Jetzt fassen wir den MVC-Verarbeitungsprozess zusammen. Zuerst empfängt der Controller die Anfrage des Benutzers und entscheidet, welches Modell zur Verarbeitung aufgerufen werden soll. Anschließend verarbeitet das Modell die Anfrage des Benutzers und gibt sie zurück mit der entsprechenden Ansicht Die vom Modell zurückgegebenen Daten werden dem Benutzer über die Präsentationsschicht präsentiert.
Warum MVC verwenden?
Die meisten Webanwendungen werden mit prozeduralen Sprachen wie ASP, PHP oder CFML erstellt. Sie mischen Code auf Datenebene wie Datenbankabfragen mit Code auf Präsentationsebene wie HTML.
Erfahrene Entwickler werden die Daten von der Präsentationsschicht trennen, aber das ist normalerweise nicht einfach. Es erfordert sorgfältige Planung und ständige Versuche. MVC erzwingt grundsätzlich deren Trennung. Obwohl die Erstellung von MVC-Anwendungen einige zusätzliche Arbeit erfordert, stehen die Vorteile, die sie uns bringt, außer Frage.
In erster Linie können mehrere Ansichten ein Modell gemeinsam nutzen, da es, wie bereits erwähnt, mittlerweile immer mehr Möglichkeiten gibt, auf Ihre Anwendung zuzugreifen. Eine Lösung hierfür ist die Verwendung von MVC. Unabhängig davon, ob Ihre Benutzer eine Flash-Schnittstelle oder eine WAP-Schnittstelle wünschen, kann sie alle verarbeiten. Da Sie die Daten und Geschäftsregeln von der Präsentationsschicht getrennt haben, können Sie die Wiederverwendung Ihres Codes maximieren.
Da die vom Modell zurückgegebenen Daten nicht formatiert sind, kann dieselbe Komponente von verschiedenen Schnittstellen verwendet werden. Beispielsweise können viele Daten in HTML dargestellt werden, sie können jedoch auch in Macromedia Flash und WAP dargestellt werden. Modelle verfügen außerdem über Statusverwaltungs- und Datenpersistenzfunktionen. Beispielsweise können sitzungsbasierte Warenkörbe und E-Commerce-Prozesse auch von Flash-Websites oder drahtlosen Netzwerkanwendungen wiederverwendet werden.
Da Modelle eigenständig und von Controllern und Ansichten entkoppelt sind, ist es einfach, die Datenschicht und Geschäftsregeln Ihrer Anwendung zu ändern. Wenn Sie Ihre Datenbank von MySQL nach Oracle migrieren oder Ihre RDBMS-basierte Datenquelle auf LDAP umstellen möchten, ändern Sie einfach Ihr Modell.
Sobald Sie das Modell richtig implementiert haben, werden Ihre Daten unabhängig davon, ob sie aus einer Datenbank oder einem LDAP-Server stammen, in der Ansicht korrekt angezeigt. Da sich die drei Komponenten einer Anwendung, die MVC verwendet, gegenseitig ausschließen, hat die Änderung einer davon keine Auswirkungen auf die anderen beiden, sodass Sie auf der Grundlage dieser Designidee gute lose gekoppelte Komponenten konstruieren können.
Für mich bieten Controller auch einen Vorteil, das heißt, Controller können verwendet werden, um verschiedene Modelle und Ansichten zu verbinden, um den Benutzeranforderungen gerecht zu werden, sodass Controller ein leistungsstarkes Mittel zum Erstellen von Anwendungen darstellen können. Bei einigen wiederverwendbaren Modellen und Ansichten kann der Controller das zu verarbeitende Modell entsprechend den Anforderungen des Benutzers auswählen und dann die Ansicht auswählen, um dem Benutzer die Verarbeitungsergebnisse anzuzeigen.
Nachteile von MVC
Der Nachteil von MVC besteht darin, dass es nicht sehr einfach ist, MVC vollständig zu verstehen, da es keine klare Definition gibt. Der Einsatz von MVC erfordert eine sorgfältige Planung, und da die internen Prinzipien komplex sind, dauert es einige Zeit, darüber nachzudenken.
Sie müssen viel Zeit damit verbringen, darüber nachzudenken, wie Sie MVC auf Ihre Anwendung anwenden. Da Modell und Ansicht jedoch strikt getrennt sein müssen, wird auch das Debuggen der Anwendung erschwert. Jede Komponente muss vor der Verwendung gründlich getestet werden. Sobald Ihre Komponenten getestet wurden, können Sie sie bedenkenlos wiederverwenden.
Nach meiner persönlichen Erfahrung bedeutet die Verwendung von MVC, da wir eine Anwendung in drei Komponenten unterteilen, auch, dass Sie mehr Dateien als zuvor verwalten müssen, was offensichtlich ist. Das mag so aussehen, als hätte sich unsere Arbeitsbelastung erhöht, aber bedenken Sie bitte, dass dies nichts im Vergleich zu den Vorteilen ist, die es uns bringen kann.
MVC eignet sich nicht für kleine oder sogar mittelgroße Anwendungen. Wenn Sie viel Zeit damit verbringen, MVC auf nicht sehr große Anwendungen anzuwenden, führt dies normalerweise zu mehr Verlust als Gewinn.
MVC ist eine gute Möglichkeit, Software zu erstellen.
MVC-Entwurfsmuster sind eine gute Möglichkeit, Software zu erstellen. Einige der Prinzipien, die es befürwortet, wie die Trennung von Inhalt und Anzeige, sind möglicherweise leichter zu verstehen. Wenn Sie jedoch die Komponenten des Modells, der Ansicht und des Controllers isolieren möchten, müssen Sie möglicherweise Ihre Anwendung überdenken, insbesondere die architektonischen Aspekte der Anwendung. Wenn Sie bereit sind, MVC zu akzeptieren und in der Lage sind, mit der damit verbundenen zusätzlichen Arbeit und Komplexität umzugehen, wird MVC Ihre Software in Bezug auf Robustheit, Code-Wiederverwendung und Struktur auf ein neues Niveau heben.
Weitere programmbezogene Inhalte finden Sie in der Spalte „Programmiervideo“ der chinesischen PHP-Website!
Das obige ist der detaillierte Inhalt vonWas ist ein MVC-Framework?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!