Mẫu thiết kế - Mẫu MVC

MVC Pattern là viết tắt của Model-View-Controller Pattern. Mẫu này được sử dụng để phân tách các mối quan tâm của ứng dụng.

  • Model- Mô hình đại diện cho một đối tượng hoặc JAVA POJO mang dữ liệu. Nó cũng có thể có logic để cập nhật bộ điều khiển nếu dữ liệu của nó thay đổi.

  • View - View thể hiện sự trực quan hóa của dữ liệu mà mô hình chứa.

  • Controller- Bộ điều khiển hoạt động trên cả mô hình và khung nhìn. Nó kiểm soát luồng dữ liệu vào đối tượng mô hình và cập nhật chế độ xem bất cứ khi nào dữ liệu thay đổi. Nó giữ cho chế độ xem và mô hình tách biệt.

Thực hiện

Chúng ta sẽ tạo một đối tượng Student hoạt động như một mô hình. StudentView sẽ là lớp xem có thể in thông tin chi tiết của sinh viên trên bảng điều khiển và StudentController là lớp điều khiển chịu trách nhiệm lưu trữ dữ liệu trong đối tượng Student và cập nhật dạng xem StudentView cho phù hợp.

MVCPatternDemo , lớp demo của chúng tôi, sẽ sử dụng StudentController để chứng minh việc sử dụng mẫu MVC.

Bước 1

Tạo mô hình.

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

Bước 2

Tạo Chế độ xem.

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

Bước 3

Tạo Bộ điều khiển.

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

Bước 4

Sử dụng các phương thức StudentController để chứng minh việc sử dụng mẫu thiết kế 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;
   }
}

Bước 5

Xác minh kết quả đầu ra.

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