RxJava

Flowable / Onservable

  • Flowable实现了Publisher接口(需要实现subscribe(Subscriber<? Super T> s)方法)

  • Observable实现了ObservableSource接口(需要实现subcribe(Observer<? Super T> observer)方法)

Flowable和Observable都需要实现subscribe()方法,但是入参不同。

几个类的区分:

  • ObservableSource 可观察源
  • Observer 观察者

报刊(ObservableSource)、报刊订阅者(Observer)、订阅报刊的行为(subscribe)

  • Publisher 发布者
  • Subscriber 订阅者

报刊发布人(Publisher)、报刊订阅者(Subscriber)、订阅报刊的行为(subscribe)

  • subscribe() 订阅

Single\Completable\Maybe

Single、Completable、Maybe是简化的Observable,只是具有少部分功能

  • Single:只能发射一条单一数据或者一条异常通知,不能发射完成通知,数据与通知只能发射一个,二选一。
  • Completable:只能发射一条完成通知或者一条异常通知,不能发射数据,要么发射完成通知要么发射异常通,二选一。
  • Maybe:只能发射一条单一数据,和发射一条完成通知,或者一条异常通知,完成通知和异常通知二选一,只能在发射完成通知或异常通知之前发射数据,否则发射数据无效

五种观察者模式与被观察者关系:

被观察者 Observable Flowable Single Completable Maybe
观察者 Observer Subscriber SingleObserver CompletableObserver MaybeObserver

Hot Observable 和 Cold Observable