Coding With Fun
Home Docker Django Node.js Articles Python pip guide FAQ Policy

MVC mode


May 27, 2021 Design mode


Table of contents


MVC mode

The MVC mode represents model-View-Controller mode. This pattern is used for layered development of applications.

  • Model - The model represents an object that accesses data or JAVA POJO. It can also come with logic to update the controller as the data changes.
  • View - A view represents a visualization of the data contained in the model.
  • Controller - The controller works on models and views. I t controls the flow of data to model objects and updates the view as the data changes. It splits the view from the model.

Realize

We'll create a Student object that serves as a model. StudentView is a view class that outputs student details to the console, and StudentController is the controller class responsible for storing data into the Student object and updating the view StudentView accordingly.

MVCPatternDemo, our demo class uses StudentController to demonstrate the use of the MVC pattern.

MVC mode

Step 1

Create a model.

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

Step 2

Create a view.

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

Step 3

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

Step 4

Use the StudentController method to demonstrate the use of MVC design patterns.

MVCPatternDemo.java

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

      //从数据可获取学生记录
      Student model  = retriveStudentFromDatabase();

      //创建一个视图:把学生详细信息输出到控制台
      StudentView view = new StudentView();

      StudentController controller = new StudentController(model, view);

      controller.updateView();

      //更新模型数据
      controller.setStudentName("John");

      controller.updateView();
   }

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

Step 5

Verify the output.

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