Pola Desain - Pola MVC

Pola MVC adalah singkatan dari Model-View-Controller Pattern. Pola ini digunakan untuk memisahkan masalah aplikasi.

  • Model- Model mewakili sebuah objek atau JAVA POJO yang membawa data. Itu juga dapat memiliki logika untuk memperbarui pengontrol jika datanya berubah.

  • View - Tampilan mewakili visualisasi data yang dikandung model.

  • Controller- Kontroler bekerja pada model dan tampilan. Ini mengontrol aliran data ke objek model dan memperbarui tampilan setiap kali data berubah. Itu membuat tampilan dan model terpisah.

Penerapan

Kami akan membuat objek Siswa yang bertindak sebagai model. StudentView akan menjadi kelas tampilan yang dapat mencetak detail siswa di konsol dan StudentController adalah kelas pengontrol yang bertanggung jawab untuk menyimpan data di objek Siswa dan memperbarui tampilan StudentView sesuai kebutuhan.

MVCPatternDemo , kelas demo kami, akan menggunakan StudentController untuk mendemonstrasikan penggunaan pola MVC.

Langkah 1

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

Langkah 2

Buat Tampilan.

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

LANGKAH 3

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

LANGKAH 4

Gunakan metode StudentController untuk mendemonstrasikan penggunaan pola desain 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;
   }
}

LANGKAH 5

Verifikasi hasilnya.

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