RxBus(一)

    最近在整理项目源码中,打算抽取一些常用的代码,做成属于自己的项目代码库,以供其他项目或者以后做项目使用,减少重复工作,降低开发难度。

    如果已经在项目中使用了RxJava,可以考虑RxBus来替代EventBus等库,在实现同等的功能前提下,减少代码。由于本人正式在项目中使用RxJava的时间比较晚,所以,关于Rx的文章,很多具体实现是参考了其他blog,但由于无法考证哪位才是原作者,在此就不添加作者链接了,但还是在此先对大牛们表示感谢。关于具体如何实现RxBus,在此就不具体描述了,因为已经有很多blog都详细讲解了RxBus的实现方法,如果不清楚,可以参考我的代码或搜索一下RxBus的实现。该blog的关注点更多的是在项目中如何去使用RxBus,以及关于Event的方面的内容。

    

    RxBus的代码暂时封装的比较简单,后期根据实际情况,可能会做进一步封装,以便于使用更简单。在post方法原本是可以发送任何Event(即Event可以为Object类型)的,但我考虑到代码统一性,强制规定了只能发送RxEvent类型的事件。前期的做法是定义了一个没有任何变量、方法的类,如果需要使用Event,则自定义一个Event并继承自RxEvent,这样,在业务层处理Event的时候,所有的Event都是RxEvent的子类。但最近在整理项目代码的时候,发现需要使用Event的时候,需要自己定义N多的Event,感觉使用起来也挺繁琐的。后面想到了Handler和Message,于是打算学习一下Message的做法,封装一个自己的RxEvent。目前给RxEvent定义了两个变量what和obj,所有都会发送RxEvent对象,同时处理的时候,都去处理RxEvent对象,不需要再去自定义多个子Event,根据what区分是哪个发送的事件,根据obj区分事件的具体内容,这样就避免了使用者每次都得自己定义 

    但是,这个RxEvent只是一个最初的版本,后续我将参考Message的源码,加入对象池,以便于RxEvent对象的复用。

    由于个人的技术水平有限,难免会有疏漏,欢迎拍砖。如有错误,欢迎指正,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值