RxJava2.0的生动形象的分析

 响应式编程最近几年忽然间火起来了,尤其是RxJava出来以后,我也前前后后看了好多资料学习,最终总结出自己可以方便理解的文字,不想网上好多帖子写的那么高大上得文字。
 其实RxJava很简单,说白了他就是个稍微复杂的订阅模式,虽然实际并非仅仅如此,但是我们可以这么来理解。它分为三个四个主要的部分:

 1.Observable被观察者:也就是事件的发布者

 2.Observer观察者:也就是事件的订阅者

 3.Schedule安排调度者:负责事件调度安排,不要乱了套,比如在哪个线程执行任务

 4.Operator造作符:中间转化者,事件发布者并不是订阅者真正想要的东西,就需要中间转换者,来进行转换成订阅者需要的内容,然后再给订阅者,比如map,filter,doOnNext等

 如果这么说大家还不好理解的话我就做个形象的比喻,假如Observable是报纸出版社,Observer就是我们订阅报纸的读者。

 Observable不管有没有报纸的订阅者,他们都得时刻准备者,把一切准备工作,做好,一旦有Obsever报纸订阅者订阅你就得发给人家。

Observable的发布规则有三个方式:

 1.next 一旦报纸出来就通过这个方式发出去,而且只要有就不停的发

 2.error 一旦出错就会调用这种方式,此时也会停止发布报纸了,也就是说next就不调用了,即使没有完成也不会调用complete了。

 3.complete 一旦报纸都发完了,而且也没有出现错误调用error就会调用这个,表示事件发送完毕,通知订阅者。

Observer观察者报纸订阅者:

  报纸订阅者很简单,通过subscribe这一步向Observable提交一下自己要订阅的报纸的内容,然后就等着Obsevable报纸发布者发布报纸了,Observable也是接收到这个动作后才真正安排生产报纸。

  如果发现Observable生产的报纸不是Observer想要的报纸,比如原来生产的报纸是中文的,可是Observer需要的是英文的,这时候就需要Operator的作用了,因为它可以转换,比如我们可以用map,filter等,

  由于Observable和Observer可能会在不同的场合(线程),这就需要调度者Schedule来协调安排了,保证双方都满意。

  为了保证消费者Observer权益,我们也可以取消订阅,所以当Observer消费者向Observable通过subscribe提交订阅请求时,我们返回消费者Observer一个订阅凭证单Disposable,消费者Observer通过这个订阅凭证单就可以根据自己的意愿随时取消订阅,一旦消费者取消订阅了,Observable报纸发布者可能还在发报纸,也可能已经发完了,但是Observer已经不再care,报纸也永远也不会发给消费者了。

由于RxJava介绍的文章太多,实例代码也非常多,我也就不多此一举了,相信不是零基础的RxJava学习者,都会一看就懂。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值