Dieses Material ist Teil der Reihe „Einführung in die Unternehmensentwicklung“. Vorherige Artikel:
- über das Netzwerk ;
- über Softwarearchitektur ;
- über HTTP/HTTPS-Protokolle ;
- über Maven-Grundlagen ;
- über Servlets (wir schreiben eine einfache Webanwendung) ;
- über Servlet-Container .
Geschichte von MVC
Die Ideen für MVC wurden von Trygve Reenskaug formuliert, als er Ende der 70er Jahre bei Xerox PARC arbeitete. Damals war die Arbeit am Computer ohne einen akademischen Abschluss und das ständige Studium umfangreicher Dokumentationen nicht mehr wegzudenken. Das Problem, das Reenskaug gemeinsam mit einer Gruppe sehr starker Entwickler löste, bestand darin, die Interaktion des Durchschnittsbenutzers mit einem Computer zu vereinfachen. Es galt, Tools zu schaffen, die einerseits äußerst einfach und verständlich sind und andererseits die Verwaltung eines Computers und komplexer Anwendungen ermöglichen. Reenskaug arbeitete im Team, das den tragbaren Computer „für Kinder jeden Alters“ – Dynabook – sowie die SmallTalk-Sprache unter der Leitung von Alan Kay entwickelte. Damals und dort wurden die Konzepte einer benutzerfreundlichen Schnittstelle festgelegt. Reenskaugs Arbeit mit seinem Team hatte großen Einfluss auf die Entwicklung des IT-Bereichs. Lassen Sie uns eine interessante Tatsache vorstellen, die nicht direkt mit MVC zusammenhängt, aber die Bedeutung dieser Entwicklungen verdeutlicht. Im Jahr 2007, nach der Präsentation des Apple iPhone, sagte Alan Kay: „Als der Macintosh herauskam, fragte Newsweek, was ich davon halte.“ Ich sagte: Das ist der erste Personal Computer, der Kritik verdient. Nach der Präsentation kam Steve Jobs und fragte: Ist das iPhone kritikwürdig? Und ich sagte: Machen Sie es fünf mal acht Zoll groß, und Sie werden die Welt erobern.“ Drei Jahre später, am 27. Januar 2010, stellte Apple das 9,7-Zoll-iPad vor. Das heißt, Steve Jobs folgte Alan Kays Rat fast wörtlich. Das Projekt, an dem Rennskaug arbeitete, dauerte 10 Jahre. Und die erste Veröffentlichung über MVC von seinen Machern wurde weitere 10 Jahre später veröffentlicht. Martin Fowler, Autor einer Reihe von Büchern und Artikeln über Softwarearchitektur, erwähnt, dass er MVC aus einer funktionierenden Version von SmallTalk gelernt hat. Da es lange Zeit keine Informationen über MVC aus der Primärquelle gab, sowie aus einer Reihe anderer Gründe, ist eine Vielzahl unterschiedlicher Interpretationen dieses Konzepts aufgetaucht. Aus diesem Grund betrachten viele Menschen MVC als ein Designschema oder -muster. Seltener wird MVC als zusammengesetztes Muster oder als Kombination mehrerer Muster bezeichnet, die zusammenarbeiten, um komplexe Anwendungen zu implementieren. Tatsächlich handelt es sich bei MVC jedoch, wie bereits erwähnt, in erster Linie um eine Reihe architektonischer Ideen/Prinzipien/Ansätze, die auf unterschiedliche Weise und mit verschiedenen Mustern umgesetzt werden können. Als Nächstes werden wir versuchen, einen Blick auf die Hauptideen zu werfen, die im MVC-Konzept verankert sind.Was ist MVC: Grundideen und Prinzipien
- VC ist eine Reihe architektonischer Ideen und Prinzipien zum Aufbau komplexer Informationssysteme mit einer Benutzeroberfläche;
- MVC ist ein Akronym, das für Model-View-Controller steht.
Schritt 1: Trennen Sie die Geschäftslogik der Anwendung von der Benutzeroberfläche
Die Kernidee von MVC besteht darin, dass jede Anwendung mit einer Benutzeroberfläche in erster Näherung in zwei Module unterteilt werden kann: ein Modul, das für die Implementierung der Geschäftslogik der Anwendung verantwortlich ist, und eine Benutzeroberfläche. Das erste Modul implementiert die Hauptfunktionalität der Anwendung. Dieses Modul wird den Kern des Systems bilden, in dem das Anwendungsdomänenmodell implementiert wird. Im MVC-Konzept wird dieses Modul unser Buchstabe M sein, d. h. Modell. Das zweite Modul implementiert die gesamte Benutzeroberfläche, einschließlich der Anzeige von Daten für den Benutzer und der Logik der Benutzerinteraktion mit der Anwendung. Der Hauptzweck dieser Trennung besteht darin, sicherzustellen, dass der Kern des Systems (Modell in der MVC-Terminologie) unabhängig entwickelt und getestet werden kann. Die Anwendungsarchitektur nach einer solchen Aufteilung sieht folgendermaßen aus:Schritt 2. Erreichen Sie mithilfe des Observer-Musters eine noch größere Unabhängigkeit des Modells sowie eine Synchronisierung der Benutzeroberflächen
Dabei verfolgen wir 2 Ziele:- Erreichen Sie eine noch größere Unabhängigkeit vom Modell.
- Benutzeroberflächen synchronisieren.
Schritt 3. Aufteilen der Schnittstelle in View und Controller
Wir unterteilen die Anwendung weiterhin in Module, jedoch auf einer niedrigeren Ebene der Hierarchie. In diesem Schritt wird die Benutzeroberfläche (die in Schritt 1 in ein separates Modul aufgeteilt wurde) in eine Ansicht und einen Controller unterteilt. Es ist schwierig, eine strikte Grenze zwischen einer Ansicht und einem Controller zu ziehen. Wenn wir sagen, dass die Ansicht das ist, was der Benutzer sieht, und der Controller der Mechanismus ist, über den der Benutzer mit dem System interagieren kann, liegt ein gewisser Widerspruch vor. Steuerelemente wie Schaltflächen auf einer Webseite oder eine virtuelle Tastatur auf einem Telefonbildschirm sind im Wesentlichen Teil eines Controllers. Sie sind für den Benutzer jedoch genauso sichtbar wie jeder andere Teil der Ansicht. Hier sprechen wir eher über funktionale Aufteilung. Die Hauptaufgabe der Benutzeroberfläche besteht darin, die Interaktion des Benutzers mit dem System sicherzustellen. Das bedeutet, dass die Schnittstelle nur 2 Funktionen hat:- dem Benutzer Informationen über das System anzeigen und bequem anzeigen;
- Benutzerdaten und Befehle in das System eingeben (an das System übermitteln);
- Den Prinzipien von MVC folgend muss das System in Module unterteilt werden.
- Das wichtigste und unabhängigste Modul sollte das Modell sein.
- Das Modell ist der Kern des Systems. Sie benötigen die Fähigkeit, es unabhängig von der Schnittstelle zu entwickeln und zu testen.
- Dazu müssen Sie im ersten Schritt der Systemtrennung das System in ein Modell und eine Schnittstelle unterteilen.
- Als nächstes stärken wir mithilfe des Observer-Musters das Modell in seiner Unabhängigkeit und erreichen eine Synchronisierung der Benutzeroberflächen.
- Der dritte Schritt besteht darin, die Schnittstelle in einen Controller und eine Ansicht zu unterteilen.
- Um Informationen vom Benutzer in das System einzugeben, ist lediglich die Eingabe in die Steuerung erforderlich.
- Alles, was Informationen vom System an den Benutzer ausgibt, ist im Blick.
GO TO FULL VERSION