Dieses Material ist Teil der Reihe „Einführung in die Unternehmensentwicklung“. Vorherige Artikel:
- zum Thema Networking
- über Softwarearchitektur
- über HTTP/HTTPS
- über die Grundlagen von Maven
- über Servlets (Schreiben einer einfachen Webanwendung)
- über Servlet-Container
Geschichte von MVC
Die Ideen hinter MVC wurden von Trygve Reenskaug formuliert, als er Ende der 1970er Jahre bei Xerox PARC arbeitete. Damals erforderte die Arbeit mit Computern ein gewisses Maß an Wissen und das ständige Studium umfangreicher Dokumentationen. Die Aufgabe, die Reenskaug zusammen mit einer Gruppe sehr starker Entwickler löste, bestand darin, die Interaktion eines normalen Benutzers mit dem Computer zu vereinfachen. Es galt, Werkzeuge zu schaffen, die einerseits äußerst einfach und verständlich sind und andererseits die Steuerung von Computern und komplexen Anwendungen ermöglichen. Reenskaug arbeitete in einem Team, das unter der Leitung von Alan Kay einen Laptop „für Kinder jeden Alters“ entwickelte – das Dynabook – sowie die SmallTalk-Sprache. Damals wurden die Konzepte einer benutzerfreundlichen Schnittstelle festgelegt. In vieler Hinsicht, Die Arbeit von Reenskaug und seinem Team beeinflusste die Entwicklung der IT-Welt. Hier ist eine interessante Tatsache, die nicht direkt auf MVC zutrifft, aber die Bedeutung dieser Entwicklungen verdeutlicht. Alan Kaygenannt„Als ich 1984 zum ersten Mal bei Apple ankam, war der Mac bereits auf dem Markt und Newsweek kontaktierte mich und fragte mich, was ich von dem Mac halte. Ich sagte: ‚Nun, der Mac ist der erste Personal Computer, der gut genug ist kritisiert werden.' Nachdem er 2007 das iPhone angekündigt hatte, brachte er es zu mir und reichte es mir. Er sagte: „Alan, ist das gut genug, um kritisiert zu werden?“ Und ich sagte: ‚Steve, mach es so groß wie ein Tablet und du wirst die Welt beherrschen.‘“ Nach drei Jahren, am 27. Januar 2010, stellte Apple das iPad mit einer Diagonale von 9,7 Zoll vor. Mit anderen Worten: Steve Jobs folgte fast genau dem Rat von Alan Kay. Reenskaugs Projekt dauerte 10 Jahre. Doch nach weiteren 10 Jahren kam die erste Veröffentlichung über MVC ans Licht. Martin Fowler, Autor mehrerer Bücher und Artikel zum Thema Softwarearchitektur, erwähnt, dass er MVC mit einer funktionierenden Version von Smalltalk studiert hat. Da es lange Zeit keine Informationen über MVC aus der Originalquelle gab und aus mehreren anderen Gründen, gab es eine Vielzahl unterschiedlicher Interpretationen dieses Konzepts. Daher betrachten viele MVC als Designmuster. Seltener wird MVC als zusammengesetztes Muster oder als Kombination mehrerer Muster bezeichnet, die zusammenarbeiten, um komplexe Anwendungen zu erstellen. Aber wie bereits erwähnt, handelt es sich bei MVC in erster Linie um eine Reihe architektonischer Ideen/Prinzipien/Ansätze, die auf unterschiedliche Weise und mit unterschiedlichen Mustern umgesetzt werden können ... Als Nächstes betrachten wir die Hauptideen, die im MVC-Konzept verankert sind. und aus mehreren anderen Gründen erschien eine große Anzahl unterschiedlicher Interpretationen dieses Konzepts. Daher betrachten viele MVC als Designmuster. Seltener wird MVC als zusammengesetztes Muster oder als Kombination mehrerer Muster bezeichnet, die zusammenarbeiten, um komplexe Anwendungen zu erstellen. Aber wie bereits erwähnt, handelt es sich bei MVC in erster Linie um eine Reihe architektonischer Ideen/Prinzipien/Ansätze, die auf unterschiedliche Weise und mit unterschiedlichen Mustern umgesetzt werden können ... Als Nächstes betrachten wir die Hauptideen, die im MVC-Konzept verankert sind. und aus mehreren anderen Gründen erschien eine große Anzahl unterschiedlicher Interpretationen dieses Konzepts. Daher betrachten viele MVC als Designmuster. Seltener wird MVC als zusammengesetztes Muster oder als Kombination mehrerer Muster bezeichnet, die zusammenarbeiten, um komplexe Anwendungen zu erstellen. Aber wie bereits erwähnt, handelt es sich bei MVC in erster Linie um eine Reihe architektonischer Ideen/Prinzipien/Ansätze, die auf unterschiedliche Weise und mit unterschiedlichen Mustern umgesetzt werden können ... Als Nächstes betrachten wir die Hauptideen, die im MVC-Konzept verankert sind.MVC: Grundlegende Ideen und Prinzipien
- VC ist eine Reihe architektonischer Ideen und Prinzipien zum Aufbau komplexer Informationssysteme mit einer Benutzeroberfläche
- MVC ist eine Abkürzung und steht für: Model-View-Controller
Schritt 1: Trennen Sie die Geschäftslogik der Anwendung von der Benutzeroberfläche
Die Hauptidee von MVC besteht darin, dass jede Anwendung mit einer Benutzeroberfläche in zwei Module unterteilt werden kann: ein Modul, das für die Implementierung der Geschäftslogik verantwortlich ist, und die Benutzeroberfläche. Das erste Modul implementiert die Hauptfunktionalität der Anwendung. Dieses Modul ist der Kern des Systems, in dem das Domänenmodell der Anwendung implementiert wird. Im MVC-Paradigma ist dieses Modul der Buchstabe M, also das Modell. Das zweite Modul implementiert die gesamte Benutzeroberfläche, einschließlich der Logik zur Anzeige von Daten für den Benutzer und zur Abwicklung der Benutzerinteraktion mit der Anwendung. Das Hauptziel dieser Trennung besteht darin, sicherzustellen, dass der Kern des Systems (das „Modell“ in der MVC-Terminologie) unabhängig entwickelt und getestet werden kann. Nach dieser Trennung sieht die Architektur der Anwendung folgendermaßen aus:Schritt 2 Nutzen Sie das Beobachtermuster, um das Modell noch unabhängiger zu machen und Benutzeroberflächen zu synchronisieren
Hier haben wir 2 Ziele:- Erreichen Sie eine noch größere Unabhängigkeit des Modells
- Benutzeroberflächen synchronisieren
Schritt 3 Trennen Sie die Schnittstelle in Ansicht und Controller
Wir unterteilen die Anwendung weiterhin in Module, jetzt jedoch auf einer niedrigeren Ebene in der Hierarchie. In diesem Schritt wird die Benutzeroberfläche (die wir in Schritt 1 in ein eigenes Modul unterteilt haben) in eine Ansicht und einen Controller aufgeteilt. Es ist schwierig, eine strikte Grenze zwischen der Ansicht und dem Controller zu ziehen. Wenn wir sagen, dass die Ansicht das ist, was der Benutzer sieht, und der Controller der Mechanismus ist, der es dem Benutzer ermöglicht, mit dem System zu interagieren, könnten Sie auf einen Widerspruch hinweisen. Bedienelemente, wie zum Beispiel Schaltflächen auf einer Webseite oder eine virtuelle Tastatur auf dem Bildschirm eines Telefons, sind grundsätzlich Teil des Controllers. Sie sind für den Benutzer jedoch genauso sichtbar wie jeder andere Teil der Ansicht. Worüber wir hier wirklich reden, ist funktionale Trennung. Die Hauptaufgabe der Benutzeroberfläche besteht darin, die Interaktion des Benutzers mit dem System zu erleichtern.- Systeminformationen ausgeben und dem Benutzer komfortabel anzeigen
- Benutzerdaten und Befehle eingeben (dem System mitteilen)
- Nach den Prinzipien des MVC-Paradigmas muss ein System in Module unterteilt werden.
- Das wichtigste und unabhängigste Modul sollte das Modell sein.
- Das Modell ist der Kern des Systems. Es sollte möglich sein, es unabhängig von der Benutzeroberfläche zu entwickeln und zu testen.
- Um dies zu erreichen, müssen wir im ersten Schritt der Teilung das System in ein Modell und eine Benutzeroberfläche aufteilen.
- Anschließend stärken wir mithilfe des Beobachtermusters die Unabhängigkeit des Modells und synchronisieren Benutzeroberflächen.
- Der dritte Schritt besteht darin, die Benutzeroberfläche in einen Controller und eine Ansicht zu unterteilen.
- Alles, was zum Empfangen von Benutzerdaten in das System erforderlich ist, befindet sich im Controller.
- Alles, was zur Bereitstellung von Informationen an den Benutzer erforderlich ist, befindet sich in der Ansicht.