MVC模式
描述
MVC模式,熟悉java的web开源框架springMVC的人对这个模式肯定不陌生,顾名思义,M:model(模型),V:view(视图),C:controller(控制器),这是一种按照逻辑对程序进行分层的思想。把对model的定义、操作和展示完美的分开,这样能清晰的分离开不同的业务逻辑层次。
实例
假设我们有一个学生(student)类,现在要对学生类进行改写和展示,那么我们就可以用MVC模式实现这个需求
//M-model 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; } } //V-view 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); } } //C-controller 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()); } } 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; } } //输出结果: Student: Name: Robert Roll No: 10 Student: Name: John Roll No: 10
代码来源: 特别感谢 菜鸟教程java设计模式之MVC模式