MVC、MVP和MVVM模式

MVC模式中,视图和模型之间直接交互,而MVP模式下,视图与模型通过Presenter进行通信MVVM则采用双向绑定,减少手动同步视图和模型的工作。每种模式都有其优缺点,适合不同规模和类型的项目

### MVVM 与 MVP/MVC 的区别:

1. **数据绑定**:

- MVVM 强调 View 和 ViewModel 的自动同步。

- MVP/MVC 需要手动更新 View。

2. **View 的主动性**:

- MVVM 中,View 是完全被动的。

- MVP 中,View 需要通过 Presenter 更新。

- MVC 中,View 可以直接监听 Model 的变化。

3. **适用场景**:

- MVVM 更适合需要频繁更新 UI 的场景(如 GUI 应用)。

- MVP/MVC 更适合简单的逻辑控制。

1.MVC模式

  • Model 负责存储和管理数据。

  • View 负责显示数据。

  • Controller 负责处理用户输入并更新模型,然后通知视图更新显示。

1. 模型(Model)

模型负责管理应用程序的数据和业务逻辑。

// model.h
#ifndef MODEL_H
#define MODEL_H

typedef struct {
    int data;
} Model;

void Model_init(Model *model);
void Model_setData(Model *model, int data);
int Model_getData(Model *model);

#endif // MODEL_H
// model.c
#include "model.h"

void Model_init(Model *model) {
    model->data = 0;
}

void Model_setData(Model *model, int data) {
    model->data = data;
}

int Model_getData(Model *model) {
    return model->data;
}

2. 视图(View)

视图负责显示数据给用户。

// view.h
#ifndef VIEW_H
#define VIEW_H

#include "model.h"

typedef struct {
    Model *model;
} View;

void View_init(View *view, Model *model);
void View_display(View *view);

#endif // VIEW_H
// view.c
#include "view.h"
#include <stdio.h>

void View_init(View *view, Model *model) {
    view->model = model;
}

void View_display(View *view) {
    printf(&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

和风化雨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值