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

房地产网站设计方案seo的主要工作内容

房地产网站设计方案,seo的主要工作内容,做侵权网站用哪里的服务器,北京中国建设部网站MVC模式中,视图和模型之间直接交互,而MVP模式下,视图与模型通过Presenter进行通信,MVVM则采用双向绑定,减少手动同步视图和模型的工作。每种模式都有其优缺点,适合不同规模和类型的项目。 ### MVVM 与 MVP…

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_Htypedef 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("Data: %d\n", Model_getData(view->model));
}

3. 控制器(Controller)

控制器负责处理用户输入并更新模型。

// controller.h
#ifndef CONTROLLER_H
#define CONTROLLER_H#include "model.h"
#include "view.h"typedef struct {Model *model;View *view;
} Controller;void Controller_init(Controller *controller, Model *model, View *view);
void Controller_updateData(Controller *controller, int data);#endif // CONTROLLER_H
// controller.c
#include "controller.h"void Controller_init(Controller *controller, Model *model, View *view) {controller->model = model;controller->view = view;
}void Controller_updateData(Controller *controller, int data) {Model_setData(controller->model, data);View_display(controller->view);
}

4. 主程序

主程序将模型、视图和控制器组合在一起。

// main.c
#include "model.h"
#include "view.h"
#include "controller.h"int main() {Model model;View view;Controller controller;Model_init(&model);View_init(&view, &model);Controller_init(&controller, &model, &view);// 模拟用户输入Controller_updateData(&controller, 10);Controller_updateData(&controller, 20);return 0;
}

5. 输出结果

Data: 10
Data: 20

2.MVP模式

MVP(Model-View-Presenter)是MVC模式的一种变体,它将视图和模型之间的交互通过Presenter(主持人)来协调。

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

  • View 负责显示数据,并将用户输入传递给Presenter。

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

与MVC模式不同,MVP模式中视图和模型之间没有直接交互,所有的交互都通过Presenter来协调。这种设计使得视图和模型之间的耦合度更低,更易于测试和维护。

1. 模型(Model)

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

// model.h
#ifndef MODEL_H
#define MODEL_Htypedef 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)

视图负责显示数据,并将用户输入传递给Presenter。

// view.h
#ifndef VIEW_H
#define VIEW_Htypedef struct {void (*displayData)(int data); // 显示数据的回调函数
} View;#endif // VIEW_H

3. Presenter(主持人)

Presenter负责处理视图的输入,更新模型,并通知视图更新显示

// presenter.h
#ifndef PRESENTER_H
#define PRESENTER_H#include "model.h"
#include "view.h"typedef struct {Model *model;View *view;
} Presenter;void Presenter_init(Presenter *presenter, Model *model, View *view);
void Presenter_updateData(Presenter *presenter, int data);#endif // PRESENTER_H
// presenter.c
#include "presenter.h"void Presenter_init(Presenter *presenter, Model *model, View *view) {presenter->model = model;presenter->view = view;
}void Presenter_updateData(Presenter *presenter, int data) {// 更新模型Model_setData(presenter->model, data);// 从模型获取数据并通知视图更新int currentData = Model_getData(presenter->model);presenter->view->displayData(currentData);
}

4. 主程序

主程序将模型、视图和Presenter组合在一起。

// main.c
#include <stdio.h>
#include "model.h"
#include "view.h"
#include "presenter.h"// 视图的具体实现
void displayData(int data) {printf("Current Data: %d\n", data);
}int main() {Model model;View view;Presenter presenter;// 初始化Model_init(&model);view.displayData = displayData; // 设置视图的回调函数Presenter_init(&presenter, &model, &view);// 模拟用户输入Presenter_updateData(&presenter, 10);Presenter_updateData(&presenter, 20);return 0;
}

5.输出结果

Current Data: 10
Current Data: 20

3.MVVM模式

MVVM(Model-View-ViewModel)是一种常用于GUI应用程序的设计模式,它将视图(View)与模型(Model)通过视图模型(ViewModel)进行解耦。MVVM的核心思想是通过数据绑定将视图和视图模型连接起来,但由于C语言本身不支持数据绑定等高级特性,我们需要通过手动方式模拟MVVM的行为。

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

  • View 负责显示数据,并将用户输入传递给视图模型。

  • ViewModel 负责将模型的数据转换为视图可以显示的形式,并处理视图的输入。

在MVVM模式中,视图和模型之间没有直接交互,所有的交互都通过视图模型来协调。视图模型通过回调函数通知视图更新显示,从而实现了视图和模型的解耦。

1. 模型(Model)

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

// model.h
#ifndef MODEL_H
#define MODEL_Htypedef 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. 视图模型(ViewModel)

视图模型负责将模型的数据转换为视图可以显示的形式,并处理视图的输入。

// viewmodel.h
#ifndef VIEWMODEL_H
#define VIEWMODEL_H#include "model.h"typedef struct {Model *model;void (*onDataChanged)(int data); // 数据改变时的回调函数
} ViewModel;void ViewModel_init(ViewModel *viewModel, Model *model);
void ViewModel_setData(ViewModel *viewModel, int data);
int ViewModel_getData(ViewModel *viewModel);#endif // VIEWMODEL_H
// viewmodel.c
#include "viewmodel.h"void ViewModel_init(ViewModel *viewModel, Model *model) {viewModel->model = model;viewModel->onDataChanged = NULL; // 初始化为空
}void ViewModel_setData(ViewModel *viewModel, int data) {//非常很重要,关键的一笔!!// 更新模型Model_setData(viewModel->model, data);// 通知视图数据已改变if (viewModel->onDataChanged != NULL) {viewModel->onDataChanged(data);}
}int ViewModel_getData(ViewModel *viewModel) {return Model_getData(viewModel->model);
}

3. 视图(View)

视图负责显示数据,并将用户输入传递给视图模型。

// view.h
#ifndef VIEW_H
#define VIEW_H#include "viewmodel.h"typedef struct {ViewModel *viewModel;
} View;void View_init(View *view, ViewModel *viewModel);
void View_display(View *view);
void View_userInput(View *view, int data);#endif // VIEW_H
// view.c
#include "view.h"
#include <stdio.h>// 数据改变时的回调函数
static void onDataChanged(int data) {printf("Data Updated: %d\n", data);
}void View_init(View *view, ViewModel *viewModel) {view->viewModel = viewModel;viewModel->onDataChanged = onDataChanged; // 设置回调函数
}void View_display(View *view) {int data = ViewModel_getData(view->viewModel);printf("Current Data: %d\n", data);
}void View_userInput(View *view, int data) {// 将用户输入传递给视图模型ViewModel_setData(view->viewModel, data);
}

4. 主程序

主程序将模型、视图模型和视图组合在一起。

// main.c
#include "model.h"
#include "viewmodel.h"
#include "view.h"int main() {Model model;ViewModel viewModel;View view;// 初始化Model_init(&model);ViewModel_init(&viewModel, &model);View_init(&view, &viewModel);// 显示初始数据View_display(&view);// 模拟用户输入View_userInput(&view, 10);View_userInput(&view, 20);return 0;
}

5. 输出结果

Current Data: 0
Data Updated: 10
Data Updated: 20

**在deep seek协助下

 

 

http://www.hkea.cn/news/173185/

相关文章:

  • 网站链接的常见形式免费广告网
  • 微信微网站开发教程百度大数据平台
  • 网站服务设计引流推广是什么意思
  • 学校网站建设管理办法本周新闻热点事件
  • 网站移动版怎么做网站创建公司
  • wordpress 微商城模板下载地址苏州seo推广
  • 珠海网站哪家好百度com百度一下你
  • wordpress wp.net网络优化工程师是做什么的
  • 刷会员网站怎么做外贸如何推广
  • 专做女装的网站网站备案是什么意思
  • 没有网站可以做seo排名吗小学生简短小新闻摘抄
  • 做程序网站需要什么代码宁波seo搜索排名优化
  • 网站建设开发语言新冠病毒最新消息
  • 怎么做1688网站网页制作工具有哪些
  • 一个网站的主题和设计风格最好用的免费建站平台
  • 网站开发主页手机优化游戏性能的软件
  • 怎么做属于自己的域名网站网络策划方案
  • destoon做的网站百度商务合作联系
  • 金山区网站制作网络营销策划书1500字
  • 厦门网站建设制作工具熊猫关键词挖掘工具
  • 徐州网站建设 网站推广百度首页快速排名系统
  • 在线转格式网站怎么做拼多多seo 优化软件
  • 成都理工疫情最新消息贵港seo
  • 网站如何防止攻击怎么自己做一个小程序
  • 企业网站建设英文百度收录
  • wordpress查版本sem和seo的区别
  • 网站设计说明书怎么写网站建设平台官网
  • 有建网站的软件阿里云域名注册万网
  • 站长工具排名分析怎么创建公司网站
  • 网站建设标书四川seo哪里有