Java 声明式编程(上)重构代码

近一两年函数式编程变得很火,火了之后,就变得什么都好,其实相对于面向对象编程他的确具有一些优点,例如可测试和维护。但并不表示他什么都好,这个世界不是非黑即白的,很多事是无法衡量对与错。是灰度。所以对于那些适合函数编程的场景我们可以重构代码,将命令式或面向对象更改为函数式编程。例如函数式编程更为抽象,需要我们思维缜密,设计精巧。而命令式或面向对象地编程就更易于理解和设计。

命令式编程:命令“机器”如何去做事情(how),这样不管你想要的是什么(what),它都会按照你的命令实现。

声明式编程:告诉“机器”你想要的是什么(what),让机器想出如何去做(how)。

Java 8 非常精彩,有许多可以拍手称赞的新的特性,以后给家介绍。

重构代码是一种好的习惯,可以让你在精益求精中提高你的代码质量。

下面通过具体例子说明一下。示例中我们将命令式编程的代码重构为声明式编程

一个遍历找出质数的小程序,起始这个在我们的代码中比比皆是。

我们找出一定范围数字内的质数,这样表达意思很清晰,在从 1 到 7 (range),是否为质数,传入一个函数作为 noneMatch 参数来判断是否为质数。这里还去掉中间变量 divisable 节省了内存开销,而且语义清晰。

第二示例,是我们读取一个文本文件,然后找出文件中 test 单词出现次数

这里有许多没有必要的校验代码例如

(line = bufferedReader.readLine()) != null)

以及一些中间变量例如line

修改简单明了,这就是函数式编程的强大之处,简简单单几行代码就能达到同样的效果。

最后一个示例是分类,根据员工的等级进行分类

修改为声明式编程风格的代码

也可以这样写

今天就到这里,感谢大家支持!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 原文链接:https://github.com/EasyKotlin 值就是函数,函数就是值。所有函数都消费函数,...
    JackChen1024阅读 11,344评论 1 17
  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,177评论 2 89
  • 一只会游泳的鱼 转身就会忘了过去 即时往事千头万绪 伤痛顷刻也会散去 一个人的迷离 只有自己懂自己 思念这样的多余...
    小苹果儿_阅读 2,241评论 0 1
  • 开场白 就用这盆可爱美丽的茉莉开始自我开场白吧,不知为什么,下载了很多App,确没有想动笔的念头,直至遇上《简书》。
    霖宝儿阅读 1,234评论 0 0
  • 这周开始了为期一个月的体育健康锻炼,一个月的静坐养成。完成了在X社群的分享,完成一篇一篇写作,拜访了两个很久没有联...
    小布6阅读 3,122评论 0 0

友情链接更多精彩内容