链式(响应式)编程的简单理解
2016-03-25 00:56
302 查看
链式(响应式)编程的简单理解
1. 响应式编程定义(维基百科)
在计算机中,响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关的计算模型会自动将变化的值通过数据流进行传播。
例如,在命令式编程环境中,a = b + c 表示将表达式的结果赋给a,而之后改变b或c的值不会影响a。但在响应式编程中,a的值会随着b或c的更新而更新。
2 . 函数式编程是种编程范式
函数式编程
使用特点,将局部小的逻辑计算封装为一个个小的函数体,**在实际应用中将这些小的函数体
可以接受函数当作输入(参数)和输出(返回值)
函数式编程的基础是
函数式编程的代表作品:
例如:
![](http://img.blog.csdn.net/20160325003804822)
参考资料: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 中的所有事件
![](http://img.blog.csdn.net/20160325010022804)
4.1 利用 Block 将所有相关代码集中在一起,从一定程度上解决了代码分散的问题.
使用时需要注意循环引用,注册 rac_willDeallocSignal 信号能够跟踪对象是否被释放.
通过 KVO 监听,能够及时将模型数据变化体现在界面上
![](http://img.blog.csdn.net/20160325010711385)
对于ReactiveCocoa是一套超重量级的核心框架,使用RAC解决问题,就不需要考虑调用顺序,直接考虑结果,把每一次操作都写成一系列嵌套的方法中,使代码高聚合,方便管理,还希望可以多加揣摩和学习。
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解决问题,就不需要考虑调用顺序,直接考虑结果,把每一次操作都写成一系列嵌套的方法中,使代码高聚合,方便管理,还希望可以多加揣摩和学习。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用中UISearchDisplayController搜索效果的用法
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- 浅析iOS应用开发中线程间的通信与线程安全问题
- 检测iOS设备是否越狱的方法
- .net平台推送ios消息的实现方法
- 探讨Android与iOS,我们将何去何从?
- Android、iOS和Windows Phone中的推送技术详解
- iOS推送的那些事
- IOS 改变键盘颜色代码