rxjava2理解
2018-10-31 本文已影响6人
太阳晒得我丶好干瘪
本文从建立模型的角度分析rxjava2的源码实现,适合看了众多rxjava2源码解析还是一头雾水的同学,附带少量代码分析,rxjava2版本为2.0.7
怎样理解实现消息从上游传递到下游的
如果把rxjava2的数据流想象成一道自上而下的水流,还是有区别的,毕竟数据不可能自己向下传递,而是通过调用下游观察者身上的方法触发传递,如下图:
草图.jpg上游先预先将链条绑定(subscribe)在下游身上,而且中间的圆盘既充当了上游,也充当了下游。当链条都一条欠着一条相互连到最后一条时,最后的一个圆盘上的把手开始顺时针用力旋转,这时变牵引着倒数第二个圆盘,倒数第二个又牵引着倒数第三个,以此类推。所以我们可以理解为真正的发力点在最后一个观察者,这也是为什么Observable必须要subscribe一个Observer才会开始传递数据,这样在链条上的消息队列便可以依次从左到右传递给最终的被观察者,所以被观察者还有一个身份就是发射器。