增加了接口模块
增加了接口模块
表现层只能往系统层发动命令Command或者做数据查询,不可以发送事件,事件只能由底层系统层向表面层发送。
事件由系统层向表现层发送
ViewController
表现层到系统层用Command,系统层通过事件或者委托通知表现层,在通知的时候可以推送数据,也可以让表现层收到通知后自己去查询数据。
struct比class有更好的内存管理效率
public struct SubCountCommand : ICommand
{
public void Execute()
{
CounterMode.Count.Value--;
}
}
命令模式
单个数值的变化,用委托的方式更加合适。比如,金币,分数,等级等。
颗粒度较大的用事件比较合适。比如从服务器拉取了一个任务列表数据,任务数据列表存到了model,此时model的任务列表发生了变更,这个时候向view发送事件
Model和View是自底向上的关系
交互逻辑:View->Model
表现逻辑:Model->View
子节点通知父节点用委托或者事件
父节点调用子节点可以直接方法调用
跨模块通信 用事件
耦合就是双向引用或者循环引用
静态类不能继承
方法调用:A需要持有B,才能调用B的方法。
委托,回调:A需要持有B,才能注册B的委托。