-
Notifications
You must be signed in to change notification settings - Fork 70
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
事件的优先级有没有 #2
Comments
目前没有优先级,由于事件并不是在一个队列(线程)上发布的,所以优先级不太好定义,有什么好的建议么? |
可以考虑一下优先级+事件依赖。 感觉单纯优先级对外使用太宽泛。需要建立多个不同优先级的分区,同优先级有事件依赖的话可以调整串行顺序。 |
支持粘性事件么,就是支持订阅已经发生的事件? |
@hellogaojun 不支持,和RAC/RxSwfit不是一个类型的 |
按照你的思路,确实能在Appdelegate里面实现解耦操作,分割出多个相对独立的模块出来,比增加Appdelegate分类分多个子入口强大一些.但是我的困惑是,这其实就是把原先堆积在Appdelegate里面的代码挪了出来?因为在实际上,无论使用第三方的SDK,还是使用自己的SDK,有一些操作(初始化,回调相关)都是被推荐放在了application: didFinishLaunchingWithOptions:这个方法里. |
初始化的代码是删不掉的。解耦的目的不是减少代码,甚至解耦之后代码总量反而增多了,但是获得的好处是模块相互独立,更容易扩展和修改,并且哪些模块加载了,执行了多久都是可控的。 解耦的前提是有这个需求,如果一个App就3个人维护,并且AppDelegate也没什么代码,那么完全没必要做这件事。当业务/项目发展到一定规模后需要解耦,如果不做,会发现几乎所有的开发都要去修改一个AppDelegate.m文件,这个文件强耦合了十几个甚至几十个类,迭代起来非常困难。 至于SDK初始化的问题:解耦只是做了一层转发和抽象,SDK初始化本质上还是在didFinishLaunchingWithOptions,并没有什么变化。 |
AppDelegate里的事件分发不太适合异步操作 |
@dengchenglin AppDelegate的事件是同步分发的 |
不好意思,我理解错上下文了;囧。。。 |
我模范这个架构做了一个appDelegate的重构 |
Appdelegate事件最好不要做拦截操作。 出现问题比较难定位。
发自我的iPhone
…------------------ 原始邮件 ------------------
发件人: zhousj888 <notifications@github.com>
发送时间: 2019年7月29日 17:38
收件人: LeoMobileDeveloper/QTEventBus <QTEventBus@noreply.github.com>
抄送: YinDongWu <993169682@qq.com>, Comment <comment@noreply.github.com>
主题: 回复:[LeoMobileDeveloper/QTEventBus] 事件的优先级有没有 (#2)
我模范这个架构做了一个appDelegate的重构
加上了事件的接收优先级和拦截机制
事件按照订阅的顺序进行传递,并且每个订阅者可以拦截这个事件,如果拦截那么之后的订阅者就接收不到这个事件
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or mute the thread.
|
我这里把消息订阅者称为plugin, 场景2: |
No description provided.
The text was updated successfully, but these errors were encountered: