三网合一网站方案,wordpress怎么显示摘要,电子商城采购流程,校园信息网站开发与设计引言
mvc设计模式#xff0c;是将数据模型与视图分离#xff0c;通过控制器来建立起数据模型与视图之间的联系#xff0c;当数据模型变化自动更新视图。其中M-数据模型#xff0c;V-视图#xff0c;C-控制器。下面是一个简单的对于MVC设计模式的使用。
示例
开发环境是…引言
mvc设计模式是将数据模型与视图分离通过控制器来建立起数据模型与视图之间的联系当数据模型变化自动更新视图。其中M-数据模型V-视图C-控制器。下面是一个简单的对于MVC设计模式的使用。
示例
开发环境是QtCreator6.0.2。创建控制台输出程序设置项目的运行环境为run in terminal.程序启动的时候可以开启终端对应的程序的运行结果在终端查看。下面是实现代码。 main.cpp
#include QCoreApplication
#include iostream
#include QDebug
#include mvcstudent.h
//using namespace std;int main(int argc, char *argv[])
{QCoreApplication a(argc, argv);//设计模式-MVCMVCstudent student;return a.exec();
}
studentmodel.h
#ifndef STUDENTMODEL_H
#define STUDENTMODEL_H
#include QStringclass StudentModel
{
public:StudentModel();void setStudentName(QString name);void setStudentNumber(int num);QString getStudentName();int getStudentNum();
private:QString m_strName;int m_nNumber;
};#endif // STUDENTMODEL_H
studentmodel.cpp
#include studentmodel.hStudentModel::StudentModel()
{}void StudentModel::setStudentName(QString name)
{m_strName name;
}void StudentModel::setStudentNumber(int num)
{m_nNumber num;
}QString StudentModel::getStudentName()
{return m_strName;
}int StudentModel::getStudentNum()
{return m_nNumber;
}studentview.h
#ifndef STUDENTVIEW_H
#define STUDENTVIEW_H
#include QStringclass StudentView
{
public:StudentView();void outputStudentInfo(QString name,int studentId);
};#endif // STUDENTVIEW_H
studentview.cpp
#include studentview.hStudentView::StudentView()
{}void StudentView::outputStudentInfo(QString name,int studentId)
{qDebug(学生信息姓名%s学号%d,qPrintable(name),studentId);
}studentcontroller.h
#ifndef STUDENTCONTROLLER_H
#define STUDENTCONTROLLER_H
#include studentmodel.h
#include studentview.h
#include QStringclass StudentController
{
public:StudentController();StudentController(StudentModel model,StudentView view);void setStudentName(QString name);void setStudentId(int num);QString getStudentName();int getStudentId();void updateView();
private:StudentModel m_studentModel;StudentView m_studentView;
};inline void StudentController::setStudentId(int num)
{m_studentModel.setStudentNumber(num);
}#endif // STUDENTCONTROLLER_Hstudentcontroller.cpp
#include studentcontroller.hStudentController::StudentController()
{}StudentController::StudentController(StudentModel model, StudentView view)
{m_studentModel model;m_studentView view;
}void StudentController::setStudentName(QString name)
{m_studentModel.setStudentName(name);
}QString StudentController::getStudentName()
{return m_studentModel.getStudentName();
}int StudentController::getStudentId()
{return m_studentModel.getStudentNum();
}void StudentController::updateView()
{m_studentView.outputStudentInfo(m_studentModel.getStudentName(),m_studentModel.getStudentNum());
}mvcstudent.h
#ifndef MVCSTUDENT_H
#define MVCSTUDENT_H
#include studentmodel.h
#include studentview.h
#include studentcontroller.hclass MVCstudent
{
public:MVCstudent();StudentModel getStudentData();
};#endif // MVCSTUDENT_Hmvcstudent.cpp
#include mvcstudent.hMVCstudent::MVCstudent()
{StudentModel model getStudentData();StudentView view;StudentController controller(model,view);controller.updateView();controller.setStudentName(及时的);controller.updateView();
}StudentModel MVCstudent::getStudentData()
{StudentModel model;model.setStudentName(护士电话);model.setStudentNumber(12412);return model;
}以上是mvc设计模式中简单的一个实现。
项目结构
项目的结构如下图所示
运行结果
由于项目是控制台输出应用程序所以设置程序可以运行在终端设置方法在左边栏中点击项目然后出下图所示窗口选中BuildRun下的Run,然后在运行设置中的run in terminal前打勾。 运行结果如下图
领悟
此篇是关于MVC设计模式的初步探索其宗旨是将视图与数据模型分离通过控制器将数据模型与视图建立联系也就是将和界面显示相关的代码封装在视图类中将显示用的数据封装在数据模型中控制器类来建立数据模型与视图之间的联系当数据模型变化的时候更新视图这就需要在控制器类中含有数据模型与视图对象作为数据成员通过控制器提供的公共接口函数可以操作数据模型故而提供了设置函数在设置函数内部调用数据模型类的设置函数来改变数据模型类中的成员变量值此外可以通过控制器类中的更新函数来更新界面的显示即更新视图通过控制器的成员变量视图类对象来调用视图类中的界面显示函数。最后需要在使用时定义数据模型类对象视图对象控制器对象通过控制器来改变数据模型进而更新视图显示。 以上是自己的一些初步理解。