目录
3.1.响应式编程(Reactive Programming)
3.2.函数式编程(Functional programming)
3.3.函数响应式编程(Functional Reactive Programming:FRP):
1. RxJava X
Rx是ReactiveX的简写,后者是Reactive Extensions的缩写,Rx是一种编程模型,用于方便处理异步数据流。
RxJava(Reactive Extensions for the JVM)
RxJava是响应式编程(Reactive Extensions)在Java VM上的实现,是一个在 Java VM 上使用可观察序列来组成异步的、基于事件的程序库。
RxJava可以浓缩为异步两个字,核心内容Observable(被观察者) 和 Observer(观察者)。Observable可以发出一系列的事件(例如网络请求、复杂计算、数据库操作、文件读取等),事件执行结束后交给Observer的回调处理。
异步
这里主要就是两个核心的方法subscribeOn和observeOn。这两个方法都传入一个Scheduler对象,subscribeOn指定产生事件的线程,observeOn指定消费事件的线程。
强大的操作符
提供了一系列的转换操作符,可以将事件序列中的某个事件或整个事件序列进行加工处理,转换成不同的事件或事件序列,然后再发送出去!
链式调用
链式调用最大的好处就是逻辑清晰,代码简洁!在应对较复杂的逻辑的时候,也能展现出清晰的思路!
简洁
异步操作很关键的一点是程序的简洁性,因为在调度过程比较复杂的情况下,异步代码经常会既难写也难被读懂。 Android 创造的AsyncTask 和Handler ,其实都是为了让异步代码更加简洁。RxJava 的优势也是简洁,但它的简洁的与众不同之处在于,随着程序逻辑变得越来越复杂,它依然能够保持简洁。
Github:https://github.com/ReactiveX/RxJava
https://github.com/ReactiveX/RxAndroid