<aside> ✍️ API的设计上
迭代器(Iterator)
</aside>
<aside> 〰️ 一连串流动的数据
</aside>
<aside> 〰️ 推送的特性(即push)
</aside>
<aside> ✍️ 换了个视角,对于发布者本身来说,就是在不断地推送元素,在rxjava中对应的是emit元素 对于订阅者来说,看到的是发布者在不断生产元素
推送的特性(即push)
</aside>
<aside> 〰️ Observable不会具有拉取元素的能力,即在订阅者订阅了Observable后,Observable接收到订阅者的通知并立即发出一个元素或者一个null值(没有元素的情况)
</aside>
<aside> 〰️ 无法确定数量的未来事件
</aside>
<aside> 〰️ 在未来某个时间点产生,并推送给客户端,想要得到这个响应值就必须先订阅它
</aside>
<aside> ✍️ org.reactivestream
</aside>
<aside> ✍️ 与之对应的还有LambdaSubscriber,不过其是支持backpressure的观察者.
观察LambdaObserver的源码部分
</aside>
<aside> ✍️ Rxjava初身是基于java7实现,所以底层在实现时定义了LambdaObserver这么一个类
观察LambdaObserver的源码部分
</aside>
<aside> 〰️ 因为create方法中放入的是一连串下发事件,总会有开始与结束,这是一个过程,而且没有返回值,所以函数式接口Consumer最适应这个情况
</aside>
<aside> ✍️ 前后对比设计上的变化很明显
因为create方法中放入的是一连串下发事件,总会有开始与结束,这是一个过程,而且没有返回值,所以函数式接口Consumer最适应这个情况
</aside>
<aside> 〰️ 一个函数式接口和装饰增强模式的典型应用
</aside>
<aside> 〰️ 不发送任何元素但可以正常结束的Observable
</aside>
<aside> 〰️ 提高所发送资源的重用性
</aside>