1 // MVC
2 // Model : 代表一个存取数据的对象。可以带有逻辑,在数据变化时,更新控制器。
3 // View : 显示模型数据
4 // Controller : 作用在模型与视图上。 控制数据流向模型对象,并在数据变化时更新视图。
5 // step1: 创建模型 Student.cs
6 public class Student
7 {
8 private string rollNo;
9 private string name;
10
11 public string RollNo
12 {
13 get => return rollNo;
14 set => rollNo = value;
15 }
16
17 public string Name
18 {
19 get => return name;
20 set => name = value;
21 }
22 }
23
24 // step2 : 创建视图 studentView.cs
25 public class StudentView
26 {
27 public void printStudentDetails(string studentName, string studentRollNo)
28 {
29 console.writeline("Student: ");
30 }
31 }
32
33 // step3 : 创建控制器 StudentController.cs
34 // 控制器 : 将模型类 与 视图类 当成 成员
35 // 控制数据流向模型对象
36 // 在控制其中 必须有两个函数 (1): 更改模型数据的函数 (2) 更新视图的函数
37 public class StudentController
38 {
39 private Student model;
40 private StudentView view;
41
42 public StudentController(Student model, Student view)
43 {
44 this.model = model;
45 this.view = view;
46 }
47
48 public void setStudentPara(string name, string rollNo)
49 {
50 model.Name = name;
51 model.RollNo = rollNo;
52 }
53
54 public void updateView()
55 {
56 view.printStudentDetails(model.Name, model.RollNo);
57 }
58 }
59
60 // step4 : 使用 studentController 方法演示 MVC 设计模式的用法
61 public class MVCPatternDemo
62 {
63 public static void Main(string[] args)
64 {
65 // 获取学生数据
66 Student model = retriveStudentFromDataBase();
67
68 // 创建视图
69 StudentView view = new StudentView();
70
71 // 将学生信息输出到控制台,并更新信息
72 StudentController controller = new StudentController(model, view);
73 controller.updateView();
74
75 // 更新模型数据
76 controller.setStudentPara("Damon", "101335")
77 controller.updateView();
78
79 }
80
81 private static Student retriveStudentFromdataBase()
82 {
83 Student student = new Student();
84 student.Name = "Damon";
85 student.RollNo = "101334";
86 return student;
87 }
88 }