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

蛋糕网站模版外贸网站排行榜前十名

蛋糕网站模版,外贸网站排行榜前十名,阿里云建立网站,网站子站建设MVC模式中#xff0c;视图和模型之间直接交互#xff0c;而MVP模式下#xff0c;视图与模型通过Presenter进行通信#xff0c;MVVM则采用双向绑定#xff0c;减少手动同步视图和模型的工作。每种模式都有其优缺点#xff0c;适合不同规模和类型的项目。 ### 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.hvoid 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.htypedef 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.hvoid 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.htypedef 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.hvoid 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.hint 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模式 MVPModel-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.hvoid 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.htypedef 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.hvoid 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模式 MVVMModel-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.hvoid 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.htypedef 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.hvoid 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.htypedef 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.hint 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/14295135/

相关文章:

  • 衡水企业网站建设做阿里网站
  • 网站建设类论文格式为违法网站做推广进去要几年
  • 中国铁建统一企业门户网站网站建设实训报告收获
  • 微网站策划方案重庆企业服务建站网站开发
  • 网站推广营销右糖视频制作
  • 手机端网站开发书籍网站信管局备案
  • 专业的网站建设方案口碑营销的前提及好处有哪些?
  • 邢台网络公司网站建设Wordpress一直刷不出
  • 网站编程培训公司wordpress淘客系统
  • 肇庆cms建站系统海南海口最新新闻事件
  • 环球购物官方网站wordpress是cms
  • 上海手机网站宣传片制作费用报价表
  • 找网站嘉兴seo收费
  • 如何创业做网站展厅设计施工
  • 做神马网站快速排名微信开发公司
  • 零基础网站建设教程如何打开网站网页
  • 网站开发房源岗位专业的家居行业网站制作
  • 成都网站建设比较好的公司电影网站开发PPT模板
  • 汕头汽配网站建设专业版简历
  • 怎么做网站8uftp外贸黄页网站
  • 成都网站建设的公司哪家好蓝色的网站
  • 拓者吧装修效果图沈阳seo关键词排名
  • 西安俄语网站建设网站标题没有排名
  • 仿快递网站源码最牛的网站建设
  • 怎样做网站手机和电脑通用网站设计网
  • 内蒙古建设厅网站网站里的课程配图怎么做
  • 网站建设方案书要写吗网站建设需要学习什么
  • 好网站西安模板做网站
  • 网站建设主机耗电量网站推广排名怎么做
  • 杭州网站设计公司价格免费windows云服务器