MVC模式

MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。

View(视图) - 视图代表模型包含的数据的可视化。

Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。


常用于单应用框架或多应用的单体框架中,不过目前前后端采取分离形态,所以V很多已挪到了前端。MVC模式指的是模型,视图,控制器相互分离的一种思想。


MVC模式的实例

首先构建模型,一般是指数据的最小单元,其实模型的设计又有很多细节。

/**
* 模型,在业务中模式设计其实特别讲究
* 在领域模型其实就细分了很多种类,比如:
* 失血模型
* 贫血模型
* 充血模型
* 胀血模型
*/

class Student {
getRollNo() {
return this.rollNo;
}
setRollNo(rollNo) {
this.rollNo = rollNo;
}
getName() {
return this.name;
}
setName(name) {
this.name = name;
}
}

其次构建视图,一般用于输出或显示。

class StudentView {
printStudentDetails(studentName, studentRollNo){
console.log("Student: ");
console.log("Name: " + studentName);
console.log("Roll No: " + studentRollNo);
}
}

最后根据控制器来控制模型渲染视图。

class StudentController {
constructor(model, view){
this.model = model;
this.view = view;
}
setStudentName(name){
this.model.setName(name);
}
getStudentName(){
return this.model.getName();
}
setStudentRollNo(rollNo){
this.model.setRollNo(rollNo);
}
getStudentRollNo(){
return this.model.getRollNo();
}
updateView(){
view.printStudentDetails(this.model.getName(), this.model.getRollNo());
}
}

在使用来说就是根据数据变化,更新显示了。

function retrieveStudentFromDatabase() {
const student = new Student();
student.setName("Robert");
student.setRollNo("10");
return student;
}
const model = retrieveStudentFromDatabase();
//创建一个视图:把学生详细信息输出到控制台
const view = new StudentView();
const controller = new StudentController(model, view);
controller.updateView();
//更新模型数据
controller.setStudentName("John");
controller.updateView();


链接: https://www.fly63.com/course/27_1288