MVC-Muster

Das MVC-Muster steht für das Model-View-Controller-Muster. Dieses Muster wird für die geschichtete Entwicklung von Anwendungen verwendet.

  • ModellDas Modell repräsentiert ein Objekt, das auf Daten zugreift, oder ein JAVA POJO. Es kann auch Logik enthalten, um den Controller zu aktualisieren, wenn sich Daten ändern.
  • Ansicht- Die Ansicht repräsentiert die Visualisierung der im Modell enthaltenen Daten.
  • ControllerDer Controller wirkt auf das Modell und die Ansicht. Er steuert den Datenfluss zu Modellobjekten und aktualisiert die Ansicht, wenn sich Daten ändern. Er trennt die Ansicht vom Modell.


summary

Absicht

Teilt die Anwendung in drei Kernkomponenten auf: Modell, Ansicht und Controller, um die Trennung von Zuständigkeiten zu erreichen.

Wesentliche gelöste Probleme

  • Es löst das Kopplungsproblem zwischen Geschäftslogik, Daten und Anzeige der Benutzeroberfläche in Anwendungen und macht Entwicklung und Wartung klarer und einfacher.

Anwendungsfall

  • Wenn Daten, Geschäftslogik und Anzeige der Benutzeroberfläche für unabhängige Entwicklung und Wartung getrennt werden müssen.

Implementierungsansatz

  • Modell: Verantwortlich für Daten und Geschäftslogik, normalerweise einschließlich Datenspeicherung, Abruf und Geschäftsregeln.
  • Ansicht: Verantwortlich für die Anzeige der Benutzeroberfläche der Daten (Modell), ohne Geschäftslogik.
  • Controller: Empfängt Benutzereingaben, ruft das Modell und die Ansicht auf, um die Anfrage des Benutzers zu erfüllen.

Schlüsselcode

  • Modell: Enthält Geschäftslogik und Datenzustand.
  • Ansicht: Enthält Präsentationslogik, rendert die Daten des Modells als Benutzeroberfläche.
  • Steuereinheit: Enthält Logik, um auf Benutzereingaben zu reagieren und das Modell und die Ansicht zu aktualisieren.

Anwendungsbeispiel

  • Webanwendung: Der Benutzer sendet eine Anfrage über den Browser (Ansicht), der serverseitige Controller verarbeitet die Anfrage, und das Modell führt die Datenverarbeitung durch.

Vorteile

  • Trennung von Belangen: Trennt Daten, Geschäftslogik und Anzeige der Benutzeroberfläche, um die Kopplung zu reduzieren.
  • Leicht zu warten: Jede Komponente ist für eine bestimmte Aufgabe verantwortlich, was die unabhängige Entwicklung und Wartung erleichtert.
  • Erweiterbarkeit: Modell, Ansicht oder Controller können unabhängig ersetzt oder aktualisiert werden.

Nachteile

  • Kann die Komplexität erhöhen: Bei einfachen Projekten kann die Einführung von MVC unnötige Komplexität hinzufügen.
  • Leistungsprobleme: Bei nicht korrekter Verwendung kann es zu Leistungsproblemen kommen.

Verwendungshinweise

  • Wenn Sie große Anwendungen entwickeln, die eine klare Trennung von Daten, Geschäftslogik und Benutzeroberfläche erfordern, sollten Sie die Verwendung des MVC-Musters in Betracht ziehen.

Hinweise

  • Stellen Sie eine klare Interaktion zwischen Modell, Ansicht und Controller sicher und vermeiden Sie gegenseitige Abhängigkeiten.

Mehrere Hauptrollen enthalten

  • Modell:

    • Verwaltet Daten und Geschäftslogik.
  • View:

    • Zeigt Daten im Modell an und stellt eine Benutzeroberfläche bereit.
  • Controller:

    • Empfängt Benutzereingaben, ruft das Modell und die Ansicht zur Verarbeitung auf.
  • Benutzer (optional):

    • Interagiert mit der Ansicht und löst den Anwendungsfluss aus.

Implementierung

Wir werden ein ... als Modell erstellenStudentObjekt.StudentViewIst eine View-Klasse, die Studentendetails auf der Konsole ausgibt,StudentControllerist dafür verantwortlich, Daten inStudentdie Controller-Klasse im Objekt zu speichern und die Ansicht entsprechend zu aktualisieren.StudentView。

MVCPatternDemo, unsere Demo-Klasse verwendetStudentController, um die Verwendung des MVC-Musters zu demonstrieren.

MVC 模式的 UML 图

Schritt 1

Modell erstellen.

Student.java

public class Student { private String rollNo; private String name; public String getRollNo() { return rollNo; } public void setRollNo(String rollNo) { this.rollNo = rollNo; } public String getName() { return name; } public void setName(String name) { this.name = name; } }

Schritt 2

Ansicht erstellen.

StudentView.java

public class StudentView { public void printStudentDetails(String studentName, String studentRollNo){ System.out.println("Student: "); System.out.println("Name: " + studentName); System.out.println("Rollennummer: " + studentRollNo); } }

Schritt 3

Erstellen Sie einen Controller.

StudentController.java

public class StudentController { private Student model; private StudentView view; public StudentController(Student model, StudentView view){ this.model = model; this.view = view; } public void setStudentName(String name){ model.setName(name); } public String getStudentName(){ return model.getName(); } public void setStudentRollNo(String rollNo){ model.setRollNo(rollNo); } public String getStudentRollNo(){ return model.getRollNo(); } public void updateView(){ view.printStudentDetails(model.getName(), model.getRollNo()); } }

Schritt 4

VerwendungStudentControllerMethode zur Demonstration der Verwendung des MVC-Entwurfsmusters.

MVCPatternDemo.java

public class MVCPatternDemo { public static void main(String[] args) { //Studentendatensätze aus der Datenbank abrufen Student model = retrieveStudentFromDatabase(); //Eine Ansicht erstellen: Studentendetails auf der Konsole ausgeben StudentView view = new StudentView(); StudentController controller = new StudentController(model, view); controller.updateView(); //Modelldaten aktualisieren controller.setStudentName("John"); controller.updateView(); } private static Student retrieveStudentFromDatabase(){ Student student = new Student(); student.setName("Robert"); student.setRollNo("10"); return student; } }

Schritt 5

Führen Sie das Programm aus, geben Sie die Ergebnisse aus:

Student: 
Name: Robert
Roll No: 10
Student: 
Name: John
Roll No: 10
Weitere Erweiterungen