21 Star 93 Fork 30

KevinHM / FunctionalReactiveProgrammingOniOS

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
conclusion.md 2.05 KB
一键复制 编辑 原始数据 按行查看 历史
KevinHM 提交于 2015-08-14 10:16 . (っ˘▽˘)っ :cloud:⊂(◕。◕⊂)

总结

本章我们使用ReactiveCocoa做了很多实践,总结了几个关键点:

  • 函数式编程可在任何地方起作用

    • 数据导入的代码,即使没有反应式代码,我们也能够使用map:filter:来帮忙。在抽象方面,总觉得从未被实际实现。
  • 为函数的副作用使用subscribeNext:

    • subscribeNext:和其他类似的方法订阅信号的副作用,返回RACDisposable实例(这种实例将被传阅,直到信号完成被回收为止) 为副作用使用这些方法---使得事物看起来像主动跟外界(一个没有反应式的世界)交互似的。
  • 避免显示状态下进行订阅处理

    • 按照设计准则,无论何时都应该避免显示的订阅处理。请记住我们是怎样用takeUntil:来自动处理FRPCell类的订阅的。使用takeUntil:允许信号值通过,直到它的参数被传递下去或者它自己的值完成。基本上这种情况下,接收者已经完成接收了。
  • 内存管理的魔法

    • ARC下,在代码的表面上你摆脱了内存管理。ReactiveCocoa中也一样。唯一要注意的是,不能在任何signal的block中捕捉self。

以上,就是第五章的全部内容。接下来我们将介绍Model-View-ViewModel这种程序架构,给App添加一个日志系统,并写一些单元测试,出发吧!

BTY:函数副作用:指当调用函数时,除了返回函数值之外,还对主调用函数产生附加影响。例如修改全局变量或修改参数,一般而言函数副作用会给程序设计带来不必要的麻烦,使程序难以查找错误,并降低程序的可读性。严格的函数式语言要求函数必须无副作用。

有一种特殊的情况,就是我们这里的函数。它的参数是一种In/Out作用的参数,即函数可能改变参数里面的内容,把一些信息通过输入参数,夹带到外界。这种情况,严格来说,也是副作用,是非纯函数。即我们所讨论的函数反应型编程中的函数式编程属于非纯函数,它是具有副作用的。

Objective-C
1
https://gitee.com/DarkHorse1919/FunctionalReactiveProgrammingOniOS.git
git@gitee.com:DarkHorse1919/FunctionalReactiveProgrammingOniOS.git
DarkHorse1919
FunctionalReactiveProgrammingOniOS
FunctionalReactiveProgrammingOniOS
master

搜索帮助