相关框架: Rx, Bacon.js, RAC
响应式编程
响应式思维
响应式编程, 为异步数据流编程, 是一种面向数据流和变化传播的编程范式, 数据更新是相关联的
创建(create)流, 将流进行组合(combine) 和 过滤(filter); input, merge, filter, map

一个流就是一个将要发生的以时间为序的事件序列. 它能发射出三种不同的信号: 一个数据值(data value, 某种类型的), 一个错误(error) 或 一个完成(completed)的信号
监听流的行为叫做订阅, 观察者设计模式
e.g. 假设实现一个双击事件流(两次或两次以上)

响应式编程提高了代码的抽象层次, 这样就可以专注于业务逻辑的事件定义, 而不是尝尝捣鼓那些大量的实现细节. RP的代码可能会更简洁清晰.

Reactive Cocoa
iOS开发中事件: Target, Delegate, KVO, 通知, 时钟, 网络异步回调
ReactiveCocoa用信号接管了iOS中的所有事件.


RAC特点: 通过block函数式+链式的编程, 可以让所有相关的代码继承在一起.
使用时需要注意循环引用, @weakify(self) / @strongify(self) 组合解除循环引用
FRP或RAC的一些简图
















参考
通俗解释什么是响应式编程?
函数式反应型编程(FRP) —— 实时互动应用开发的新思路, by 邓际锋