程序员求职经验分享与学习资料整理平台

网站首页 > 文章精选 正文

Rxjava2 Observable与Observer响应式编程在Rxjava2中的典型实现

balukai 2025-04-01 15:57:07 文章精选 7 ℃

在RxJava中,函数响应式编程具体表现为一个观察者(Observer)订阅一个可观察对象(Observable),通过创建可观察对象发射数据流,经过一系列操作符(Operators)加工处理和线程调度器(Scheduler)在不同线程间的转发,最后由观察者接受并做出响应的一个过程

ObservableSource与Observer是RxJava2中最典型的一组观察者与可观察对象的组合,其他四组可以看做是这一组的改进版或者简化版。


Observable

抽象类Observable是接口ObservableSource下的一个抽象实现,我们可以通过Observable创建一个可观察对象发射数据流。



Observer

创建一个观察者Observer来接受并响应可观察对象发射的数据流。在onNext方法中接收到可观察对象发射的数据"Hello World",并做出响应——打印到控制台。




Observer订阅Observable


一旦Observer与Observable建立了订阅关系,Observer与Observable便成为了一个整体,Observer便可对Observable中的行为作出响应。





步骤简化

在响应式编程的基础上,加上函数式编程,真正的函数响应式编程可以将代码简化成以下形式:


其中,just操作符是经过封装后,专门用来发射单条数据的,可以是一个数据,一条字符,一个对象,一整个数组,一整个集合。

Consumer可以看做是对观察者Observer功能单一化之后的产物——消费者,上例中的Consumer通过其函数accept只接收可观察对象发射的数据,不接收异常信息或完成信息。


发送数据序列

Observable可以发送单条数据或者数据序列,上面的事例都是发送单条数据'Hello World"的情形,那么怎样发送数据序列呢?






Observable发送一条数据,Observe接收一条,取消订阅关系之后,Observe将不再接收Observable发送的数据。

Tags:

最近发表
标签列表