响应式框架的变迁
Monad
ReactiveCocoas是采用号称纯函数式编程语言里的Monad设计模式搭建起来的,核心类RACStream。
1 |
|
从代码视觉上看
Monad为了避免赋值语句做了很多数据传输的管道工作。我们在分析问题时,就很容易从代码层面清晰地看出数据流向和变化。而如果是赋值语句,在分析数据时就需要考虑数据状态和生命周期,会增加调试定位的成本,强依赖调试工具去观察变量。
从语言发展来看
Monad虽然可以让上层接口看起来很简洁,但底层的实现却犹如一团乱麻。为了达到纯函数的效果,Monad底层将各种函数的参数和返回值封装在了类型里,将本来可以通过简单数据赋值个变量记录的方式复杂化了。
不采用Monad模式的函数响应式框架
上层按照函数式编程的思想来搭建数据流管道,在下层使用赋值方法来管理数据