美文网首页
响应式编程

响应式编程

作者: 程序员大叔日记 | 来源:发表于2018-09-28 11:27 被阅读0次

    响应式编程是一种基于异步数据流概念的编程模式。数据流就像一条河:它可以被观测,被过滤,被操作,或者为新的消费者与另外一条流合并为一条新的流。响应式编程的一个关键概念是事件。事件可以被等待,可以触发过程,也可以触发其它事件。

    RxJava 2.x 已经按照 Reactive-Streams specification 规范完全的重写了,maven也被放在了io.reactivex.rxjava2:rxjava:2.x.y 下。RxJava 2.x 拥有了新的特性,其依赖于4个基础接口,它们分别是

    • Publisher

    • Subscriber

    • Subscription

    • Processor

    其中最核心的莫过于 PublisherSubscriberPublisher 可以发出一系列的事件,而 Subscriber 负责和处理这些事件。

    其中用的比较多的自然是 PublisherFlowable,它支持背压。关于背压给个简洁的定义就是:

    背压是指在异步场景中,被观察者发送事件速度远快于观察者的处理速度的情况下,一种告诉上游的被观察者降低发送速度的策略。

    简而言之,背压是流速控制的一种策略。 观察者模式

    大家可能都知道, RxJava 以观察者模式为骨架,在 2.0 中依旧如此

    不过此次更新中,出现了两种观察者模式:

    • Observable ( 被观察者 ) / Observer ( 观察者 )

    • Flowable (被观察者)/ Subscriber (观察者)

    在 RxJava 2.x 中,Observable 用于订阅 Observer,不再支持背压(1.x 中可以使用背压策略),而 Flowable 用于订阅 Subscriber , 是支持背压(Backpressure)的。

    在 RxJava 1.x 中,我们最熟悉的莫过于 Observable 这个类了,笔者在刚刚使用 RxJava 2.x 的时候,创建了 一个 Observable,瞬间一脸懵逼有木有,居然连我们最最熟悉的 Subscriber 都没了,取而代之的是 ObservableEmmiter,俗称发射器。此外,由于没有了Subscriber的踪影,我们创建观察者时需使用 Observer

    相关文章

      网友评论

          本文标题:响应式编程

          本文链接:https://www.haomeiwen.com/subject/naguoftx.html