Wie implementiere ich die MVC-Architektur in Java?

Dieser Artikel über die MVC-Architektur in Java hilft Ihnen zu verstehen, was genau das MVC-Entwurfsmuster ist und wie es das Entwerfen von Webanwendungen erleichtert.

Im Feld Webentwicklung Model-View-Controllerist einer der am meisten diskutierten in der heutigen Webprogrammierwelt. MVC Architecture war ursprünglich in den beiden wichtigsten Webentwicklungs-Frameworks enthalten - Struts und Ruby on Rails . In diesem Artikel wollen wir uns ein wenig mit MVC Architecture in befassen .

In diesem Artikel werden folgende Themen behandelt:



Bevor wir tatsächlich gIn Bezug auf die technischen Details der MVC-Architektur gibt es bestimmte Konzepte, die Sie kennen müssen.

  • Entwurfsmuster In der Softwareentwicklung handelt es sich um eine Technik zur Lösung eines häufig auftretenden Problems beim Entwerfen von Software.
  • Modell entwerfen, Gibt an, welche Art von Architektur Sie verwenden, um das Problem zu lösen oder das Modell zu entwerfen.
  • Es gibt zwei Arten von Designmodellen :: Modell 1 Architektur , Modell 2 (MVC) Architektur.

Was ist MVC-Architektur in Java?

Modellentwürfe, die auf der MVC-Architektur basieren, folgen der MVC und sie trennen die Anwendungslogik von der Benutzeroberfläche beim Entwerfen von Software. Wie der Name schon sagt, besteht das MVC-Muster aus drei Ebenen:

  • Modell - Repräsentiert die Geschäftsschicht der Anwendung
  • Aussicht - Definiert die Darstellung der Anwendung
  • Regler - Verwaltet den Ablauf der Anwendung

MVC - MVC-Architektur in Java - Edureka

Im Java-ProgrammierkontextDas Modell besteht aus einfachen Java-Klassen In der Ansicht werden die Daten angezeigt, aus denen der Controller besteht . Diese Trennung führt dazu, dass Benutzeranforderungen wie folgt verarbeitet werden:

  1. Der Browser auf dem Client sendet eine Anforderung für eine Seite an den auf dem Server vorhandenen Controller
  2. Der Controller führt die Aktion zum Aufrufen des Modells aus und ruft dabei die Daten ab, die er als Antwort auf die Anforderung benötigt
  3. Die Steuerung gibt dann die abgerufenen Daten an die Ansicht weiter
  4. Die Ansicht wird gerendert und an den Client zurückgesendet, damit der Browser sie anzeigen kann

Trennen einer Softwareanwendung inDiese drei unterschiedlichen Komponenten sind aus mehreren Gründen eine gute Idee. Werfen wir einen Blick darauf, was das ist.

Vorteile der MVC-Architektur in Java

Die MVC-Architektur bietet einem Programmierer viele Vorteile bei der Entwicklung von Anwendungen, darunter:

  • Mehrere Entwickler können gleichzeitig mit den drei Ebenen (Modell, Ansicht und Controller) arbeiten
  • Angebote verbessert Skalierbarkeit , das die Wachstumsfähigkeit der Anwendung ergänzt
  • Da Komponenten eine geringe Abhängigkeit voneinander haben, sind sie leicht zu warten
  • Ein Modell kann von mehreren Ansichten wiederverwendet werden, wodurch der Code wiederverwendbar wird
  • Durch die Einführung von MVC wird eine Anwendung aussagekräftiger und verständlicher
  • Das Erweitern und Testen der Anwendung wird einfach

Jetzt wissen Sie, warum die MVC am beliebtesten ist in der Web-Programmierwelt. Machen Sie sich keine Sorgen, wenn Sie immer noch Schwierigkeiten haben, sich mit dem Konzept von MVC vertraut zu machen. Wir werden tief in jede dieser Schichten eindringen und ihren Zweck mit Hilfe eines lernen .

Implementierung von MVC mit Java

Um eine Webanwendung basierend auf dem MVC-Entwurfsmuster zu implementieren, erstellen wir

  • Kursklasse , die als die fungiert Modellschicht
  • CourseView-Klasse , die die Präsentationsschicht definiert ( Ebene anzeigen )
  • CourseContoller-Klasse , die als Regler

Lassen Sie uns nun diese Ebenen einzeln untersuchen.

Die Modellebene

Im MVC-Entwurfsmuster wird die Modell- ist die Datenschicht, die die Geschäftslogik des Systems definiert und auch den Status der Anwendung darstellt.Das Model Objekte Abrufen und Speichern des Status des Modells in einer Datenbank. Über diese Ebene wenden wir Regeln auf Daten an, die schließlich die Konzepte darstellen, die unsere Anwendung verwaltet. Jetzt erstellen wir ein Modell mit Kursklasse.

Paket MyPackage öffentliche Klasse Kurs {privater String Kursname privater String Kurs-ID privater String Kurskategorie öffentlicher String getId () {return CourseId} public void setId (String-ID) {this.CourseId = id} öffentlicher String getName () {return CourseName} öffentlicher void setName (String name) {this.CourseName = name} public String getCategory () {return CourseCategory} public void setCategory (String category) {this.CourseCategory = category}}

Der Code ist leicht zu verstehen und selbsterklärend. Es besteht aus Funktionen zum Abrufen / Festlegen von Kursdetails.

Die Ansichtsebene

Diese Schicht des MVC-Entwurfsmusters repräsentiert die Ausgabe der Anwendung oder der Benutzeroberfläche. Es zeigt die vom Controller aus der Modellebene abgerufenen Daten an und präsentiert sie dem Benutzer, wann immer er dazu aufgefordert wird. icht erhält alle benötigten Informationen vom Controller und muss nicht direkt mit der Business-Schicht interagieren.Erstellen wir eine Ansicht mit CourseView-Klasse.

Paket MyPackage öffentliche Klasse CourseView {public void printCourseDetails (String CourseName, String CourseId, String CourseCategory) {System.out.println ('Kursdetails:') System.out.println ('Name:' + CourseName) System.out.println ('Kurs-ID:' + Kurs-ID) System.out.println ('Kurskategorie:' + Kurskategorie)}}

Dieser Code isteinfach, um die Werte auf der Konsole zu drucken. Als nächstes haben wir den Controller der Webanwendung.

Die Controller-Schicht

Der Controller ist wie eine Schnittstelle zwischen Modell und Ansicht. Es empfängt die Benutzeranforderungen von der Ansichtsebene und verarbeitet sie einschließlich der erforderlichen Überprüfungen. Die Anforderungen werden dann zur Datenverarbeitung an das Modell gesendet. Sobald sie verarbeitet sind, werden die Daten erneut an die Steuerung zurückgesendet und dann in der Ansicht angezeigt.Lassen Sie uns erstellen CourseContoller-Klasse welches als Controller fungiert.

Paket MyPackage öffentliche Klasse CourseController {privates Kursmodell private CourseView-Ansicht public CourseController (Kursmodell, CourseView-Ansicht) {this.model = Modell this.view = Ansicht} public void setCourseName (String name) {model.setName (name)} public String getCourseName () {return model.getName ()} public void setCourseId (String-ID) {model.setId (id)} public String getCourseId () {return model.getId ()} public void setCourseCategory (String category) {model.setCategory (Kategorie)} public String getCourseCategory () {return model.getCategory ()} public void updateView () {view.printCourseDetails (model.getName (), model.getId (), model.getCategory ())}}

Ein flüchtiger Blick auf den Code zeigt, dass diese Controller-Klasse nur dafür verantwortlich ist, das Modell aufzurufen, um die Daten abzurufen / festzulegen und die Ansicht basierend darauf zu aktualisieren. Jetzt lass unsSchauen Sie sich an, wie all dies miteinander verbunden ist.

Haupt-Java-Klasse

Nennen wir diese Klasse 'MVCPatternDemo.java'. Überprüfen Sie den Code unten.

Paket MyPackage öffentliche Klasse MVCPatternDemo {public static void main (String [] args) {// Schülerdatensatz basierend auf seiner Rollennummer aus der Datenbank abrufen Course model = retriveCourseFromDatabase () // Eine Ansicht erstellen: um Kursdetails in die Kursansicht der Konsole zu schreiben = neuer CourseView () CourseController-Controller = neuer CourseController (Modell, Ansicht) controller.updateView () // Modelldaten aktualisieren controller.setCourseName ('Python') System.out.println ('nNach dem Aktualisieren lauten die Kursdetails wie folgt') controller.updateView ()} privater statischer Kurs retriveCourseFromDatabase () {Kurs kurs = neu Kurs () kurs.setName ('Java') kurs.setId ('01 ') kurs.setKategorie (' Programmierung ') kurs zurück}}

Die obige Klasseholt die Kursdaten aus dem mit welchem ​​Benutzer den Wertesatz eingibt. Diese Werte werden dann in das Kursmodell übernommen. Anschließend wird die Ansicht initialisiert, die wir zuvor im Artikel erstellt haben.Ferner ruft es auch das auf CourseController Klasse und bindet es an die Kurs Klasse und die CourseView Klasse. Das updateView () Die Methode, die Teil des Controllers ist, aktualisiert dann die Kursdetails auf der Konsole. Überprüfen Sie die Ausgabe unten.

Ausgabe

Java 9-Funktionen mit Beispielen
Kursdetails: Name: Java Kurs-ID: 01 Kurskategorie: Programmierung Nach der Aktualisierung lauten die Kursdetails wie folgt: Kursdetails: Name: Python Kurs-ID: 01 Kurskategorie: Programmierung

Die MVC-ArchitekturBietet Ihrem Code eine völlig neue Modularität, die ihn viel lesbarer und wartbarer macht. Dies bringt uns zum Ende dieses Artikels.Ich hoffe, Sie sind mit allem klar, was mit Ihnen geteilt wurde.

Stellen Sie sicher, dass Sie so viel wie möglich üben und Ihre Erfahrung zurücksetzen.

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen. Wir erstellen einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieser 'MVC-Architektur in Java'. Artikel und wir werden uns so schnell wie möglich bei Ihnen melden.