[iOS开发]响应式编程开发-ReactiveCocoa

什么是响应式编程

  响应式编程是一种面向数据流和变化传播的编程范式。这意味着能够在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值经过数据流进行传播。编程

  例如,在命令式编程环境中,a:=b+c表示将表达式的结果赋给a,而以后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。
电子表格程序就是响应式编程的一个例子。单元格能够包含字面值或相似"=B1+C1"的公式,而包含公式的单元格的值会依据其余单元格的值的变化而变化。网络

  响应式编程最初是为了简化交互式用户界面的建立和实时系统动画的绘制而提出来的一种方法,但它本质上是一种通用的编程范式。框架

什么是ReactiveCocoa

  ReactiveCocoa (RAC) 是一个Objective-C语言内实现响应式编程的框架。编程语言

  RAC提供了大量的可以完成发送 value's stream 的API。动画

  RAC经过使用信号量(RACSignal)来完成获取当前值和将来值的功能,而不像传统的程序开发同样须要声明大量的变量。spa

 

Josh Abernathy这样解释它:设计

  • 程序接收输入产生输出。输出就是对输入作了一些事的结果。输入,转换,输出,完成。orm

  • 输入是应用动做的所有来源。点击、键盘事件、定时器事件、GPS时间、网络请求响应都算是输入。这些事件被传递到应用中,应用将他们以某种方式混合,产生告终果:就是输出。生命周期

  • 输出一般会改变应用的UI。开关状态变化、列表有了新的元素都是UI变化。也有可能让磁盘上某个文件产生变化,或者产生一个API请求,这都是应用的输出。事件

  • 但不像传统的输入输出设计,应用的输入输出能够产生不少次。应用打开后,不仅是一个简单的 输入→工做→输出 就构成了一个生命周期。应用常常有大量的输入并基于这些输入产生输出。

相关文章
相关标签/搜索