【Unity】MVP框架的使用例子

在提到MVP之前,可以先看看这篇MVC的帖子:

【Unity】MVC的简单分享以及一个在UI中使用的例子

MVC的不足之处:

在MVC的使用中,会发现View层直接调用了Model层的引用,即这两个层之间存在着一定的耦合性,而MVP则可优化MVC中存在的这个视图层与数据层之间的耦合问题。

MVP的解释为:

Model(模型层/数据层):负责数据的处理、例如增删查改等等。

View(视图层):负责获取控件,向用户显示数据。

Presenter(主持人):接收用户输入,操作Model层,再更新View层。

其中MVP与MVC最大的不同就是,View层的数据更新被迁移至Presenter层完成,这里的View层只负责数据的显示,不负责数据的更新操作,好处在于易于进行单元测试。

适用场景,对比MVC:

MVC是比较简单、直接的架构,适用于需求简单、UI变动不大的项目,适合Web开发和快速原型开发。

MVP适合更加复杂、需要高度测试性的应用。

下面是MVP框架例子:

如何使用?

脚本说明:

创建三个脚本分别为(脚本具体内容处于博客最下方):

RoleModel_MVP.cs、RoleView_MVP.cs以及RolePresenter_MVP.cs。

RoleModel_MVP.cs:定义数据模型、包括了更新数据和保存数据的方法、通过事件绑定通知Presenter层需要让View层更新数据;

RoleView_MVP.cs:获取UI控件;

RolePresenter_MVP.cs:上为视图层中的组件绑定事件业务、直接更换视图层更新UI显示的数据,下能提醒数据层进行数据处理。

步骤:

1.创建一个UIPanel,并创建一个Text和Button,将RoleView_MVP.cs和RolePresenter_MVP.cs挂载至该UIPanel中,并将对应组件拖拽至脚本的对应属性。如下图。

2.运行游戏,点击按钮,生命值会减少。

完成!!!

相关推荐
上位机付工2 小时前
2025年了,学C#上位机需要什么条件
c#·上位机·西门子
c#上位机2 小时前
wpf之Border
c#·wpf
2301_793116948 小时前
Unity 解决天空盒中间出现一条线
unity
佩京科技VR9 小时前
禁毒教育展厅互动设备-禁毒教育基地-禁毒体验馆方案-VR禁毒教育软件
unity·vr·禁毒展厅·vr禁毒学习机
almighty279 小时前
C# 阿里云 OSS 图片上传步骤及浏览器查看方法
c#·图片上传·c# 阿里云 oss·阿里云 oss
Python大数据分析@1 天前
Python 语言有什么奇技淫巧吗?
开发语言·python·c#
Envyᥫᩣ1 天前
C#中的设计模式:构建更加优雅的代码
开发语言·c#
平行云1 天前
Paraverse平行云实时云渲染助力第82届威尼斯电影节XR沉浸式体验
unity·云原生·ue5·xr·实时云渲染
CHHC18801 天前
C#工作流示例(WorkflowCore)
c#·工作流