吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 980|回复: 8
收起左侧

[求助] 请各位解答下我对MVC模块的一点疑问

[复制链接]
巫人 发表于 2021-8-21 11:43
先上下我对MVC框架的理解版图,MVC适合做UI我就直接做的UI
上面这图我觉得我理解的应该没问题,看网上说的好多都很模糊,我这图也是参考了好几个博客画的。
问题:
1.我的Model层读取JSON文件,但是读取出来是T类型的,所以M层没办法做查询,传了个委托出去交给用户层做查询了。要是想在M层做的话,得做成个工厂模式,但是解析JSON出来的数组你懂的,list dictionary各种嵌套,又没办法规范JSON格式,所以工厂模式也难做。不知道这层各位友友怎么解决的。


2.我画的图是理应C层和用户做交互,但是写着写着就把C层当入口了,M层是静态的随便调,V层是实例对象,由C层找到V层对象来调用V层方法,写了大半天还是从别处调用了M,V,C就感觉是个摆设,有没有小型一点的开源工程可以让我参考一下。。或者大家直接给我解惑也好。


3.如果是C层要接收用户输入的话,举个例子:例如InputField接受用户输入,因为事件定义在V层,所以用户输入的信息我现在就直接传入了V层然后返回到了用户层,现在到底是该用户层处理这些信息,还是这里边哪一层来处理?
因为我做的是Unity的项目,代码又多,就不劳烦大家看我代码了,就事论事就行了(PS:实际是楼主看不懂C#以外的代码)

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

EnterpriseSolu 发表于 2021-8-21 12:22
这个不用自己多思考,看网上的例子是怎么处理的,或是github找几个DEMO来学习一下,MVC,MVP,领域驱动设计,都是概念,越看越糊涂
 楼主| 巫人 发表于 2021-8-21 13:03
EnterpriseSolu 发表于 2021-8-21 12:22
这个不用自己多思考,看网上的例子是怎么处理的,或是github找几个DEMO来学习一下,MVC,MVP,领域驱动设计, ...

有没有例子可以甩我几个。。那什么csdn上的水的一批,太小型了根本没参考价值,github又不会搜,麻烦老哥了,提前谢谢你
whofly 发表于 2021-8-21 14:43
Eaglecad 发表于 2021-8-21 14:52
简单理解就是 model是存数据的,view是显示数据的,C/D就是编辑数据的。
 楼主| 巫人 发表于 2021-8-21 16:40
whofly 发表于 2021-8-21 14:43
楼主多看看视频学习

视频看了,太水了,都是培训机构的视频
 楼主| 巫人 发表于 2021-8-21 16:44
Eaglecad 发表于 2021-8-21 14:52
简单理解就是 model是存数据的,view是显示数据的,C/D就是编辑数据的。

这么说我也知道,但是还得细分啊,分出来就是我这样的,但是我感觉我的还不够细,所以想大家给指点一下
troybug 发表于 2021-8-21 17:32
感觉MVC是Web开发的概念,强行套进Unity可能不太合适。Controller是用来控制显示哪个View的,但是Unity中没有URL可以让你输入,不过可以LoadScene。我一般将Entity定义好后,再用一个脚本负责初始化。
Entity(Model)
    EnemyModel.cs  --   class Enemy    int id; int hp;  ...
Scene
    InitEnemy.cs  -- webrequest加载json,然后new Enemy() 填充各种数据,并添加到场景中,保存一个List<Enemy>,用来维护,比如销毁
Enemy
    Enemy.cs   -- 控制逻辑,可以动态挂载也可以在prefab中先挂载好

我是自己摸索的,也没有找到官方提供的最佳方案
 楼主| 巫人 发表于 2021-8-22 10:33
troybug 发表于 2021-8-21 17:32
感觉MVC是Web开发的概念,强行套进Unity可能不太合适。Controller是用来控制显示哪个View的,但是Unity中没 ...

我想法和你不一样,我为了节省内存所有UI控件都没挂脚本,UI是以panel为单位的所以我只在panel上面挂了uiviewer用来管理,场景中还挂了uimanager管理和搜索uiviewer,这样做出来就不用每个控件上面都挂脚本了。外界交互入口是manager,然后才是到M,V层。
我看了好多地方都说MVC是适用于UI的,url不只网络协议呀,还有本地的。另外原始的mvc肯定不适合unity,但大概观念一定是适配的,业务分离对于做ui就很适合。
给你看下我的大致代码,很水的随便看看就好了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 00:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表