当前位置: 首页 > news >正文

框架设计MVVM

重点:

1.viewmodel 包含model

2.view包含viewmodel,通过驱动viewmodel去控制model的数据和业务逻辑

// Test.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
#include <vector>using namespace std;#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 };
};//ViewModel
class ViewModel
{
public:ViewModel(shared_ptr<Model> model) :m_model(model){}int HandleIncrementPressed(){m_model->Increace();return m_model->GetCount();}int HandleDecrementPressed(){m_model->Decreace();return m_model->GetCount();}int GetInfo(){return m_model->GetCount();}
private:shared_ptr<Model> m_model;
};class View
{
public:View(shared_ptr<ViewModel> vm) :m_viewModel(vm){}void HandleIncrementPressed(){m_viewModel->HandleIncrementPressed();cout << m_viewModel->GetInfo()<<endl;}void HandleDecrementPressed(){m_viewModel->HandleDecrementPressed();cout << m_viewModel->GetInfo() << endl;}
private:shared_ptr<ViewModel> m_viewModel;
};
int main()
{shared_ptr<Model> model= make_shared<Model>();shared_ptr<ViewModel> cont = make_shared<ViewModel>(model);shared_ptr<View> view = make_shared<View>(cont);view->HandleIncrementPressed();view->HandleDecrementPressed();return 0;}

http://www.lryc.cn/news/401123.html

相关文章:

  • RK3399基础部分
  • linux高级编程(广播与组播)
  • Andriod Stdio新建Kotlin的Jetpack Compose简单项目
  • Linux多线程编程-哲学家就餐问题详解与实现(C语言)
  • 从C向C++18——演讲比赛流程管理系统
  • QThread和std::thread
  • LeetCode 算法:组合总和 c++
  • 【两大3D转换SDK对比】HOOPS Exchange VS. CAD Exchanger
  • Openerstry + lua + redis根据请求参数实现动态路由转发
  • 数字名片-Pushmall 智能AI数字名片7月更新计划
  • 21. Python代码快速查看数组分布
  • 记录些Redis题集(3)
  • OracleLinux6.9升级UEK内核
  • React学习笔记03-----手动创建和运行
  • ubantu22.04安装OceanBase 数据库
  • 【linux】【深度学习】fairseq框架安装踩坑
  • 【Python爬虫教程】第7篇-requests模块的cookies保存和使用
  • 微信小程序开发基础知识6----使用npm包
  • 如何在element中table的 v-for中 使用slot-scope?
  • 企业网络实验dhcp-snooping、ip source check,防非法dhcp服务器、自动获取ip(虚拟机充当DHCP服务器)、禁手动修改IP
  • 20. Python读取.mat格式文件通用函数
  • Cypress UI自动化之安装环境
  • SpringApplication.java类
  • 智能招聘系统的AI功能解析
  • AV1技术学习:Translational Motion Compensation
  • mysql中的存储过程
  • 07:串口通信二
  • 识别视频中的人数并统计出来
  • 【TypeDB 】机器学习和符号 AI 在机器人技术中的作用
  • EPLAN 去掉PDF中的红色跳转标识