给Android开发者的 RxJava 详解:http://gank.io/post/560e15be2dca930e00da1083
响应式编程是一种异步数据流交互的编程范式,而RxJava就是基于事件操作异步数据流在Java上实现的库
核心的理念是将一切都当做数据流来看待,各种变量,用户输入,数据结构,缓存等等
而Rx库提供了高度抽象的函数来操作流,创建、流入流出、过滤、合并、映射等等各种变换
不仅如此,Rx库还使得异步操作,和错误处理变得非常简洁。
使用了RxJava后明显的好处就是
1解决了回调地狱(就是很多层的回调嵌套)的困扰
2切换线程变得方便
3配合Java8的新特性Retrolambda,代码会进一步简洁
更深层次的优势是,加深代码的抽象,使得我们更专注于业务逻辑而不是具体实现细节
并且事件驱动型的系统可以解耦成多个组件,使代码具有更好的扩展性和容错性
但是也有一些难处
1要用好响应式编程,就得训练好基于流的编程思维,而这与过去有着较大的差异
这会导致重构过去的代码难度较大,以及常常会因为思维转变得不纯粹而写出“半成品”
2由于Rx库的操作符高度抽象,使用是很方便但深入理解的成本会很高
3由于Rx库很抽象,很年轻,使用时会有许多需要留意的坑,加上Retrolambda会带来一些性能上的影响
原文:http://www.cnblogs.com/ganchuanpu/p/6569102.html