赞
踩
Model-View-Controller : 模型-视图-控制器模式,用于应用程序的分层开发。
Model(模型):代表一个存取数据的对象。也可以带有逻辑,在数据变化时更新控制器。
View(视图):代表模型包含的数据的可视化。
Controller(控制器):作用于模型和视图之上。控制数据流向模型对象,并在数据变化时更新视图。使视图与模型分离开。

/* StudentModel 模型类 StudentView 视图类,把学生详细信息输出到控制台 StudentController 控制器类,存储数据到Student对象,并更新视图StudentView */ //创建模型 StudentModel.cpp #include <stdio.h> #include <string.h> class StudentModel { public: int getRollNo() { return _rollNo; } void setRollNo(int rollNo) { _rollNo = rollNo; } char * getName() { return _name; } void setName(char * name) { _name = new char[strlen(name) + 1]; strncpy(_name, name, strlen(name) + 1); } private: int _rollNo; char * _name; }; //创建视图 StudentView.cpp class StudentView { public: void printStudentDetails(char * studentName, int studentRollNo) { printf("Name: %s RollNo: %d\n\n", studentName, studentRollNo); } }; //创建控制器 StudentController.cpp class StudentController { public: StudentController(StudentModel model, StudentView view) { _model = model; _view = view; } void setStudentName(char * name) { _model.setName(name); } char * getStudentName() { return _model.getName(); } void setStudentRollNo(int rollNo) { _model.setRollNo(rollNo); } int getStudentRollNo() { return _model.getRollNo(); } void updateView() { _view.printStudentDetails(_model.getName(), _model.getRollNo()); } private: StudentModel _model; StudentView _view; }; int main(void) { StudentModel model; model.setName("Robert"); model.setRollNo(10); StudentView view; StudentController controller(model, view); controller.updateView(); //更新模型数据 controller.setStudentName("John"); controller.updateView(); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。