Qt数据和视图分离——中MCV和MVVM

一、背景知识

回忆我们最初学Qt的时候,经常通常都是在一个文件中,创建很多控件,然后在当前文件中处理该控件,包括信号槽的处理,控件的变化等等…我们最初用的就是所谓的命令式编程 也就是MVC
随着我们的项目愈发庞大,我们发现,我们的代码越来越难以维护,并且出现的bug很难定位,俗称(屎山),后面我们了解到声明式编程 也就是MVVM

二、命令式编程 vs 声明式编程

2.1 命令式编程(Imperative Programming)

命令式编程是一种通过一系列指令命令来改变程序状态的范式。开发者需要显式地描述如何进行某些操作,通常通过控制流(如条件语句、循环等),逐步指示计算机完成任务。这种方式强调“如何做”。

👁️👁️特点:

  • 步骤驱动:开发者需要明确每个操作步骤。
  • 状态管理:程序的状态在每一步变化中逐渐改变。
  • 控制流:使用条件和循环来控制程序的执行顺序。

根据以下实例,我们通过信号和槽直接处理用户的点击事件,通过显式地调用方法来更新UI

#include <QApplication>  
#include <QPushButton>  
#include <QLabel>  
#include <QVBoxLayout>  
#include <QWidget>  

int main(int argc, char *argv[]) {
     
    QApplication a(argc, argv);  

    QWidget window;  
    QVBoxLayout layout(&window);  
    
    QLabel label("Hello, World!");  
    QPushButton button("Change Text");  

    layout.addWidget(&label);  
    layout.addWidget(&button);  

    // 命令式风格  
    QObject::connect(&button, &QPushButton::clicked, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愿天堂没有C++

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值