Tasarım Desenleri - MVC Modeli

MVC Örüntüsü, Model-Görünüm-Denetleyici Kalıbı anlamına gelir. Bu model, uygulamanın endişelerini ayırmak için kullanılır.

  • Model- Model, veri taşıyan bir nesneyi veya JAVA POJO'yu temsil eder. Ayrıca, verileri değişirse denetleyiciyi güncelleme mantığına sahip olabilir.

  • View - Görünüm, modelin içerdiği verilerin görselleştirilmesini temsil eder.

  • Controller- Kontrolör hem modele hem de görünüme göre hareket eder. Model nesnesine veri akışını kontrol eder ve veriler her değiştiğinde görünümü günceller. Görünümü ve modeli ayrı tutar.

Uygulama

Model olarak hareket eden bir Öğrenci nesnesi oluşturacağız . StudentView , öğrenci ayrıntılarını konsolda yazdırabilen bir görünüm sınıfı olacak ve StudentController , verileri Öğrenci nesnesinde depolamak ve buna göre StudentView görünümünü güncellemekten sorumlu denetleyici sınıfıdır .

MVCPatternDemo , bizim demo sınıf, kullanacağı StudentController MVC modelini gösterir etmek.

Aşama 1

Model Oluşturun.

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

Adım 2

Görünüm Oluşturun.

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

Aşama 3

Denetleyici Oluşturun.

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

4. adım

MVC tasarım deseni kullanımını göstermek için StudentController yöntemlerini kullanın .

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

Adım 5

Çıkışı doğrulayın.

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