ReactiveX简介:
An API for asynchronous programming with observable streams。
分解一下这个句子:
- API: 首先它是个编程接口,不同语言提供不同实现。例如JVM语言中的RxJava。
- For asynchronous programming: 使用场景,异步变成环境中。
- With observable streams: 基于可观察的事件流
事实上,在异步协作(编程)中,所有的协作都是基于事件机制,通过事件发布与订阅机制,实现双方的解耦。流的概念则与流式中的概念是一样的,流意味中源源不断,只要有流到来,就会启动相应的处理流程。
ReactiveX组合了以下3者:
1. 观察者模式:观察感兴趣的目标并在特定事件发生时做出反应。
2. Iterator模式:迭代,其实就是流式的概念,不断迭代、循环、处理。
3. 函数式变成: 在针对目标事件做出反应的时候,使用函数式编程的方式进行相应。
下面的动态图很形象地解释了Reactive:
下图更进一步解释Observable广播时间的机制: