第十三章 函数式的思考
为什么要采用函数式编程
第十四章 函数式编程的技巧
高阶函数
满足下面任一要求就可以被称为高阶函数:
- 至少接受一个函数作为参数
-
科里化
定义:是把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数,并且返回接受余下的参数而且返回结果的新函数的技术。
- 作用:模块化函数、提高代码重用性
持久化数据结构
函数式方法不允许修改任何全局数据结构或者任何作为参数传入的参数,一旦对这些数据进行修改,两次相同的调用就可能产生不用的结果,违背了引用透明性原则Stream延迟计算
Stream就像一个黑盒,它接受请求生成结果,当你向一个Stream发起一系列的操作请求时,这些请求只是被一一保存起来。只有当你向Stream发起一个终端操作时,才会实际地进行计算
第十五章 面向对象和函数式编程的混合:Java 8和Scala的比较
第十六章 结论以及Java的未来
回顾
- 行为参数化
- Lambda
- 方法引用
提高了代码的可复用性和可阅读性
- 流
针对集合操作提供了一套高级“语法糖”
- CompletableFuture
针对Future操作提供了一套高级“语法糖”
- Optional
解决了变量引用引发的NPE问题,代码更加流畅易读易维护
- 默认方法
类库设计者能够更加平滑的修改架构设计,屏蔽了将来接口变化对类库使用者的影响
总结:Java8一系列特性,能够极大的提高日常工作中的编码效率,如使用Stream操作集合,CompletableFuture执行异步操作;同时使用函数式编程能够使得代码可读性更高,更易于维护以及具备更好的可重用性;