5397人加入学习
(57人评价)
框架搭建 决定版:架构演化(第一季)

基于 Unity 2021.x

价格 ¥ 598.00
该课程属于 Unity - A计划(永久有效期) 请加入后再学习

比较小的用委托(金币 分数 等级 经验值)

比加大的用事件(服务器拉一个任务列表数据)

[展开全文]

委托的方式

开始先找到 按钮的组件

不要持有双向引用

父节点可以引用子节点 子节点要调用父节点的方法时 可以用事件或委托

[展开全文]

这一步少了个演化步骤,本来整体可以缩减为IOC变量,Init()方法,Get()方法; 然后在写成模板的需求下,增加了一个mArchitecture变量和MakeSureContainer()方法,主要是为了用来调用非静态的抽象方法Init()

[展开全文]

个人思考:

  • Controller首次调用Architecture实现类.Interface时,框架中的Utility、Model和System才进行初始化,可能是为了体现有实际需求时再实例化Model、System和Utility各层的思想
  • 初始化时由于可能发生引用为空的问题 以及 字典中还未添加相关Key-Value的问题,在MakeSureArchitecture方法中先将各层初始化;并将各层添加进字典中,然后再逐个调用Init方法,并且先调用Model的Init,再调用System的Init,这样避免出现System可能再一开始就需要Model的具体值,但由于Model未调用Init方法导致System取到的值为默认空值的问题
  • 各种Command并没有像Model、System和Utility直接在一开始就添加进字典,而是有需求时再生成调用。可能是出于Command一般会很多的考虑,没有将Command做成单例

 

[展开全文]

表现层复用的逻辑可以用在系统层,比如计时系统和成就系统

 

模型层则负责数据的定义以及提供数据的修改方法

 

工具层则负责提供基础设施,比如存储方法,网络链接方法,框架集成等等

 

当上层要改变下层状态时必须要用command,只是简单查询则可以直接方法调用

[展开全文]

由于IController没有对应的抽象Controller,所以IBelongToArchitecture的阉割需要在子类中实现

 

其实可以为项目制作指定的抽象类,但是为了框架的通用性,所以新项目需要自己去对应的类里进行GetArchitecter的阉割

[展开全文]

这里其实有问题你看罗敏是个大二货、她终于想起来要给罗琳和姑姑买礼物了。你们说

[展开全文]

IOC容器的两个核心API,1.根据Type注册实例 2.根据Type获取实例

[展开全文]

静态类用于模块化非常方便

 

静态类没有访问限制

使用static去扩展模块,其模块的识别度不高

 

如果一个类是单例类,那么我们就可以比较容易识别,这个单例类是一个模块类

 

 

[展开全文]

ui和game节点

SceneManager.GetActiveScene().GetRootGameObjects();获得顶端节点

 

[展开全文]

父节点可以引用子节点,子节点要调用父节点的方法时,可以用事件和委托。

[展开全文]

无框架的项目不用完全杜绝,体量小的一次性项目

[展开全文]

private static 在同一个类名脚本中都可以访问到。

[展开全文]

counterModel.Count.OnValueChanged += newCount =>

{

             //处理

}

counterModel.Count.OnValueChanged+= OnCountChanged;

private void OnCountChanged(int newCount)

{

             //处理  

}

 

[展开全文]

表现层只能往系统层发动命令Command或者做数据查询,不可以发送事件,事件只能由底层系统层向表面层发送。

 

事件由系统层向表现层发送

[展开全文]

ViewController

表现层到系统层用Command,系统层通过事件或者委托通知表现层,在通知的时候可以推送数据,也可以让表现层收到通知后自己去查询数据。

[展开全文]

授课教师

QFramework、鬼山之下/第一座山

课程特色

视频(30)
下载资料(1)