思考并回答以下问题:
- 所谓的管理就是维护字典,然后对字典进行增删查。怎么理解?
- 为什么Model和View实现类都需要维护一个自己的名字?有什么好处?没有会怎么样?
- 为什么Model和View字典都是用自带的Name字段作为key,而Controller字典是用事件名?
- 为什么Controller字典的Value用Type类来存储?需要用到的时候再实例化,预先实例化浪费内存。但之前需要管理,所以用typeof()得到Type对象,用到的时候再通过反射进行实例化。怎么理解?
- Activator.CreateInstance是干嘛用的?
- 所有启动的地方都要写在Awake中。怎么理解?
MVC
MVC的设计每个都不一样,但关键是解耦合。而解耦合的过程中会使用到大量的设计模式。最常用的有单例模式、观察者模式、命令模式、工厂模式等。
实现代码
管理类
MVCManager.cs
1 | using System; |
View
View.cs
1 | using System.Collections; |
Model.cs
1 | using System.Collections; |
Controller
Controller.cs
1 | using System; |
GameDefine.cs 系统常量
1 | using UnityEngine; |
使用
实现点击界面“增加金币”按钮,显示出来的金币数量增加。
初始化框架
Init.cs
1 | using UnityEngine; |
Controller文件夹下
InitCtrl.cs
1 | using MVCCore; |
View文件夹下
1 | using MVCCore; |
Model文件夹下
1 | using MVCCore; |