响应式编程是当前比较流行的一种编程思维模式,俗称Rx思维。RxJava是最典型的基于这种思维编写的框架。该套框架是由被誉为安卓之神的Jake Wharton所编写。到目前已被广大的应用开发者所接受,并且广泛的应用到应用开发领域。RxJava是一个框架,通过它可以帮助我们在实现复杂逻辑功能下,写出更健壮并且易于维护的代码。当然它最核心的是一种思维方式的变化。让我们通过对RxJava的使用以及对框架的解析,理解这种不同于以往的编程思想。从而帮助我们获得更多的视角,开阔视野。1、响应式编程介绍响应式编程是一种编程思想,一个起点和一个终点,事件从起点开始,中间有多个拦截,对事件进行处理,最终事件会流向终点,被终点消费掉。这个过程是一整个连续的、不中断的过程。终点只关心它的上一层拦截。例如进行网络编程时的一种情形:先弹出UI等待框;然后切换子线程进行网络请求;拿到返回结果后,可能需要对数据进行处理,增加拦截,例如对请求来的图片进行加水印等等;再切换主线程,将请求到的数据渲染到界面上。这是一个连续的过程。这种编程的思维就称为响应式编程。Rxjava是典型的响应式编程框架。在它的加持下,使得原本需要在子线程、主线程来回切换,零零散散的逻辑变得清晰和易于掌控。看一个简单的Rxjava编程伪代码的例子:从上面简单例子看到,他有几个主要的部分:create操作、map操作和subscribe操作。分别是创建触发器、变化和订阅。所有的操作都是从订阅(subscribe)开始执行。在上图中标记了流程的执行步骤。一开始“订阅”首先会触发onSubscribe回调,然后从顶端create开始向下执行,订阅之前的操作全部执行完毕,将执行到onNext回调方法。最后执行到onComplete回调,整个执行流程结束。如果中途出现错误,则执行onError回调。Rxjava框架的执行模型呈现一个倒”U”型结构。首先从代码最底端开始执行,再回到最顶端开始执行,最后执行到最底端。如果嵌套多层复杂逻辑,这种模型还会呈现多个”U”型结构反复执行。这和我们正常理解的程序执行流程是不一样的,需要转换思维。