Modèles de conception - Modèle MVC

MVC Pattern signifie Model-View-Controller Pattern. Ce modèle est utilisé pour séparer les préoccupations de l'application.

  • Model- Le modèle représente un objet ou JAVA POJO transportant des données. Il peut également avoir une logique pour mettre à jour le contrôleur si ses données changent.

  • View - La vue représente la visualisation des données contenues dans le modèle.

  • Controller- Le contrôleur agit à la fois sur le modèle et sur la vue. Il contrôle le flux de données dans l'objet modèle et met à jour la vue chaque fois que les données changent. Il maintient la vue et le modèle séparés.

la mise en oeuvre

Nous allons créer un objet Student faisant office de modèle. StudentView sera une classe de vue qui peut imprimer les détails de l'étudiant sur la console et StudentController est la classe de contrôleur chargée de stocker les données dans l' objet Student et de mettre à jour la vue StudentView en conséquence.

MVCPatternDemo , notre classe de démonstration, utilisera StudentController pour démontrer l'utilisation du modèle MVC.

Étape 1

Créer un modèle.

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;
   }
}

Étape 2

Créer une vue.

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);
   }
}

Étape 3

Créer un contrôleur.

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());
   }	
}

Étape 4

Utilisez les méthodes StudentController pour illustrer l'utilisation du modèle de conception MVC.

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;
   }
}

Étape 5

Vérifiez la sortie.

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