郑州区块链数字钱包网站开发周期,毕业生 网站开发,编程培训机构哪里好,免费海报模板网站重点#xff1a;
1.presenter里面包含view和model
2.和MVC不同的是View和Model之间不进行交互
3.view包含presenter,view通过presenter反向处理逻辑。
链接#xff1a;
MVP简单实现_安卓mvp presenter-CSDN博客 Model.h
#pragma once
//Model数据处理器
class Model
{
…重点
1.presenter里面包含view和model
2.和MVC不同的是View和Model之间不进行交互
3.view包含presenter,view通过presenter反向处理逻辑。
链接
MVP简单实现_安卓mvp presenter-CSDN博客 Model.h
#pragma once
//Model数据处理器
class Model
{
public:void Increace(){count;}void Decreace(){count--;}int GetCount(){return count;}void SetCount(int num){count num;}
private:int count{ 10 };
};View.h
#pragma onceusing namespace std;
//view显示器
class CounterPresenter;
class View
{
public:void Update(int data){cout data endl;}void SetPresenter(weak_ptrCounterPresenter pre){m_presenter pre;}void IncreaceView();void DecreaceView();
private:weak_ptrCounterPresenter m_presenter;
};
view.cpp
#include CView.h
#include CCounterPresenter.h
//view显示器
void View::IncreaceView()
{if (std::shared_ptrCounterPresenter locked m_presenter.lock()){locked-HandleIncrementPressed();}
}
void View::DecreaceView()
{if (std::shared_ptrCounterPresenter locked m_presenter.lock()){locked-HandleDecrementPressed();}
}
CounterPresenter.h
#pragma once#include CModel.h
#include CView.h
using namespace std;
//Controller控制器
class CounterPresenter
{
public:CounterPresenter(shared_ptrModel model, shared_ptrView view) :m_model(model), m_view(view){}void HandleIncrementPressed(){m_model-Increace();m_view-Update(m_model-GetCount());}void HandleDecrementPressed(){m_model-Decreace();m_view-Update(m_model-GetCount());}
private:shared_ptrModel m_model;shared_ptrView m_view;
};test.cpp
// Test.cpp : 此文件包含 main 函数。程序执行将在此处开始并结束。
//#include iostream
#include vector
#include CModel.h
#include CView.h
#include CCounterPresenter.husing namespace std;int main()
{shared_ptrModel model make_sharedModel();shared_ptrView view make_sharedView();shared_ptrCounterPresenter cont make_sharedCounterPresenter(model, view);view-SetPresenter(cont);view-IncreaceView();view-DecreaceView();return 0;}