MVC设计模式

MVC设计模式

MVC模式代表模型-视图-控制器模式。此模式用于分离应用程序的关注点。

技术开发 编程 技术框架 技术发展

 

MVC设计模式

MVC模式代表模型-视图-控制器模式。此模式用于分离应用程序的关注点。

MVC模式代表模型-视图-控制器模式。此模式用于分离应用程序的关注点。

  • 模型 -模型代表承载数据的对象或JAVA POJO。如果其数据发生更改,它也可以具有更新控制器的逻辑。

  • 视图 -视图表示模型包含的数据的可视化。

  • 控制器 -控制器同时作用于模型和视图。它控制数据流入模型对象并在数据更改时更新视图。它使视图和模型分离。

实作

我们将创建一个充当模型的Student对象。StudentView将是一个视图类,可以在控制台上打印学生详细信息,StudentController是负责将数据存储在Student对象中并相应地更新View StudentView的控制器类。

我们的演示类MVCPatternDemo将使用StudentController演示MVC模式的使用。

mvc_pattern_uml_diagram.jpg

第1步

创建模型。


学生.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;

   }

}

第2步

创建视图。


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

   }

}

第3步

创建控制器。


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步

使用StudentController方法演示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;

   }

}

第5步

验证输出。


Student: 

Name: Robert

Roll No: 10

Student: 

Name: John

Roll No: 10

技术开发 编程 技术框架 技术发展