RxJava2 的4个基础接口。分别是
Publisher
Subscription
Subscriber
Processor
先来开看源代码
![](https://img.haomeiwen.com/i4554302/d4fd431b4c49875c.png)
Publisher这里提供一个基础接口用来订阅观察者
![](https://img.haomeiwen.com/i4554302/c68ff1589caba4f0.png)
Subscription这个基础接口用来实现请求和取消的
![](https://img.haomeiwen.com/i4554302/fe209f97afc543f5.png)
Subscriber是个接口,有四个功能onSubscribe(Subscription),onNext,onError,onComplete
![](https://img.haomeiwen.com/i4554302/78669b6fa9f5b0ba.png)
Observer就这么个接口,里面有onSubscribe(Disposable),onNext,onError,onComplete
onSubscribe里面的参数是用来切断和数据源的连接,onNext是不停的将数据源提供过来的数据处理的,onError发生错误时处理,一旦发生错误,或者执行了onComplete,之后都不会接受来自数据源的数据了。而且onError和onComplete只能有一个执行,逻辑上是这样的,但是都执行了,程序也不一定会报错。
![](https://img.haomeiwen.com/i4554302/66d00dbc773f967c.png)
从上面可以看出,Processor接口是继承了Subscriber和Publisher,什么也没干只是继承
市面上的文章都是什么观察者、被观察者、订阅什么的,看的晕乎乎的。
我是这么理解的,仅仅是这么理解的,甭想歪了,这么大岁数了,没这么龌龊。
有个妹子要洗澡(被观察者),那什么你要观(偷)察(窥),也不能老蹲人家家门口等着人家什么时候洗澡吧,万一一个礼拜不洗不是扑街了,于是出来这么个模式,妹子一洗澡就喊“老娘要洗澡了”,于是你听到喊声就出来观(偷)察(窥)了,注意是你,不是我,于是喊声就是这个订阅动作,这个例子只是解释这么个关系,但是你要这么做了,被打死和我一点关系都没!!!
市面上的例子Observable.subscribe(Observer) ==>妹子.喊(你),嗯,就这么理解,
好,这篇大致就到这里了,再写多了就乱了,菜鸟一枚,写的有问题的请大侠指出!
网友评论