XluaMVC和PureMVC的解析 (一)

先当草稿用用,后期再调整思路,这个框架有点庞大,必须一点一点分析才行,这篇博客是我用来理清思路的>

PureMVC部分:

ViewController都是通过注册观察者的方式来实现事件传递的

  • 观察者:Observer:,实例化它时,传入一个处理通知Inotiferion的委托就可以了;
  • Controller命令模式:注册命令时,其实注册了一个观察者,这个观察者引用了这个命令的excute方法来执行通知事件;
    • Command:Excute()是来用执行事件通知的方法
  • View层:可以注册中介者Mediator,中介者引用着具体的UI实体对象,来负责UI的对外交互,UI对象本身不参与逻辑
    • Mediator:引用着UI对象,并且声明了自己对哪些通知事件感兴趣,由ListNotificationInterests()这个方法返回的list<’string”>对象来实现.Midiator也有处理通知的方法。注册中介者时,View层会根据list中的事件名称,实例化一个观察者,观察者利用中介者处理事件的方法来处理这个通知事件。
  • Model层:可以注册代理Proxy,proxy是用来执行数据的相关操作的
    • proxy:代理数据的相关逻辑,继承了Notifier,所以可以发出通知,执行相应的事件,其中的Object data就是所操作的数据实体类,proxy可以从网络上更新数据也可以通过对外的接口来更新数据,也可以当数据更新时发出通知事件
    • Service:这个还没有深入看,目前来看,是用来处理网络消息的一个类

外观模式

以上部分都是MVC三个具体的功能细节,外观Facade统一了这些功能,对外开放。>

  • 首先,Facade引用着上述三个MVC层的单例
  • 承继了Inotifier接口 ,可以发起事件的通知
  • 对应Mediator,Proxy,Command,Handler,用V M C Service中对应的方法来实现,注册,移除,判断等功能
    实现了INotifier的类,都可以发送通知,实现这个功能的类有:Ifacade,Notifier,所有的命令Command类,代理proxy类,中介者Midiator。

使用框架的步骤

  • Program
    • 是建立框架和Unity的桥梁,它引用着Facade的实例
    • 负责框架的启动,启动框架前,先进行资源的检查工作,通过调用资源管理者AssetLoader的初始化方法Init()来开启资源检查,不过,我不太喜欢这个框架带的资源管理类,打算用自己的代替。总之,第一步应该是资源的检查工作。
    • 它还负责,Loom的初始化工作,这个类的作用好像是用来做协程工作的,暂时先不管它。还负责facade实例的释放工作。
  • ProgramEntry,是Program的子类
    • 实例化了facade的ApplicationFacade对象
    • 启动了Facade的StartUp()方法,这个方法是框架的启动开始点。
  • ApplicationFacade,继承了Facade类,是外观模式的具体实现类
    • 在StartUp方法里,注册第一个命令:START_UP命令,写一个Command的类,来注册这个事件,来执行开始的逻辑。
  • NotificationType:方便我们记录用到的事件名称的字符串,这个用到了partial来修饰这个类,不同类型的事件,放到不同的文件里写
  • 事件通知的方式
    • 所有的事件,都是通过构造观察者来实现监听的
    • INotifier接口,定义了发送通知的方法
    • 所有实现该接口的类,都有可以发送事件通知的方法,但底层调用的是Facade中的方法来实现具体细节的
    • 而Facade发送通知的方法SendNotification(),底层调用的是Observers的NotifyObservers(),方法,可以这么说,Observers是最底层实现发送通知的方法,但我们可以不知道这个细节,我们只需要知道SendNotification()即可
    • SendNotification()有三种重载,可以自已查看一下,方法内部会自动构造对应的通知Notification来做为数据进行传递
    • INotification接口定义了通知时要传送的数据的格式,事件名称,事件数据,还有一个Type类型的参数
    • 每个注册监听了事件的观察者,根据自己的需求,来处理通知事件
    • -
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值