链式(响应式)编程的简单理解
1. 响应式编程定义(维基百科)
在计算机中,响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
例如,在命令式编程环境中,a = b + c 表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。
2 . 函数式编程是种编程范式
- 函数式编程
Functional Programming
,简写FP
- 使用特点,将局部小的逻辑计算封装为一个个小的函数体,**在实际应用中将这些小的函数体
自由组合
- 可以接受函数当作输入(参数)和输出(返回值)
- 函数式编程的基础是
block
/闭包
- 函数式编程的代表作品:
Masnory
/SnapKit
例如:
参考资料:https://github.com/SnapKit/Masonry
3 .ReactiveCocoa框架
看到Masonry才感觉到链式编程思想的流的感觉,整个函数的表达式连贯性的,才知道一个重量级的框架Reactive Cocoa,
ReactiveCocoa(简称为RAC),是由Github开源的一个应用于iOS和OS开发的新框架,Cocoa是苹果整套框架的简称。
官方网站:https://github.com/ReactiveCocoa/ReactiveCocoa
4 . RAC 的核心思想
所谓响应,就是 事件 发生后做出响应
我们所熟悉的iOS 开发中的事件包括:
Target,Delegate,KVO,通知,时钟,网络异步回调。
而 ReactiveCocoa ,就是用 信号 接管了 iOS 中的所有事件
4.1 利用 Block 将所有相关代码集中在一起,从一定程度上解决了代码分散的问题.
使用时需要注意循环引用,注册 rac_willDeallocSignal 信号能够跟踪对象是否被释放.
通过 KVO 监听,能够及时将模型数据变化体现在界面上
对于ReactiveCocoa是一套超重量级的核心框架,使用RAC解决问题,就不需要考虑调用顺序,直接考虑结果,把每一次操作都写成一系列嵌套的方法中,使代码高聚合,方便管理,还希望可以多加揣摩和学习。