今天正好是我第 100 次分享,感谢各位朋友的支持!我会一直努力走下去,带来更新更好的内容。
近一两年函数式编程变得很火,火了之后,就变得什么都好,其实相对于面向对象编程他的确具有一些优点,例如可测试和维护。但并不表示他什么都好,这个世界不是非黑即白的,很多事是无法衡量对与错。是灰度。所以对于那些适合函数编程的场景我们可以重构代码,将命令式或面向对象更改为函数式编程。例如函数式编程更为抽象,需要我们思维缜密,设计精巧。而命令式或面向对象地编程就更易于理解和设计。
命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。
声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。
Java 8 非常精彩,有许多可以拍手称赞的新的特性,以后给家介绍。
重构代码是一种好的习惯,可以让你在精益求精中提高你的代码质量。
下面通过具体例子说明一下。示例中我们将命令式编程的代码重构为声明式编程
一个遍历找出质数的小程序,起始这个在我们的代码中比比皆是。
我们找出一定范围数字内的质数,这样表达意思很清晰,在从 1 到 7 (range),是否为质数,传入一个函数作为 noneMatch 参数来判断是否为质数。这里还去掉中间变量 divisable 节省了内存开销,而且语义清晰。
第二示例,是我们读取一个文本文件,然后找出文件中 test 单词出现次数
这里有许多没有必要的校验代码例如
(line = bufferedReader.readLine()) != null)
以及一些中间变量例如line
修改简单明了,这就是函数式编程的强大之处,简简单单几行代码就能达到同样的效果。
最后一个示例是分类,根据员工的等级进行分类
修改为声明式编程风格的代码
也可以这样写
今天就到这里,感谢大家支持!
领取专属 10元无门槛券
私享最新 技术干货