Entwurfsmuster - MVC-Muster

MVC Pattern steht für Model-View-Controller Pattern. Dieses Muster wird verwendet, um die Bedenken der Anwendung zu trennen.

  • Model- Das Modell repräsentiert ein Objekt oder JAVA POJO, das Daten enthält. Es kann auch eine Logik zum Aktualisieren des Controllers haben, wenn sich seine Daten ändern.

  • View - Ansicht repräsentiert die Visualisierung der Daten, die das Modell enthält.

  • Controller- Der Controller wirkt sowohl auf das Modell als auch auf die Ansicht. Es steuert den Datenfluss in das Modellobjekt und aktualisiert die Ansicht, wenn sich Daten ändern. Es hält Ansicht und Modell getrennt.

Implementierung

Wir werden ein Student- Objekt erstellen , das als Modell fungiert. StudentView ist eine Ansichtsklasse, die Schülerdetails auf der Konsole drucken kann, und StudentController ist die Controller-Klasse, die dafür verantwortlich ist, Daten im Student- Objekt zu speichern und die Ansicht StudentView entsprechend zu aktualisieren .

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

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("Roll No: " + studentRollNo);
   }
}

Schritt 3

Controller erstellen.

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

Verwenden Sie die StudentController- Methoden, um die Verwendung von MVC-Entwurfsmustern zu demonstrieren.

MVCPatternDemo.java

public class MVCPatternDemo {
   public static void main(String[] args) {

      //fetch student record based on his roll no from the database
      Student model  = retriveStudentFromDatabase();

      //Create a view : to write student details on console
      StudentView view = new StudentView();

      StudentController controller = new StudentController(model, view);

      controller.updateView();

      //update model data
      controller.setStudentName("John");

      controller.updateView();
   }

   private static Student retriveStudentFromDatabase(){
      Student student = new Student();
      student.setName("Robert");
      student.setRollNo("10");
      return student;
   }
}

Schritt 5

Überprüfen Sie die Ausgabe.

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