java声明式编程是什么_Java 声明式编程(上)重构代码

今天正好是我第 100 次分享,感谢各位朋友的支持!我会一直努力走下去,带来更新更好的内容。

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

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

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

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

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

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

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

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

2d7499866434590efb2edf2b142c1f71.png

b6358ccfae4c1f9baa01f6b5cf9882bd.png

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

65adbe0a380704bdc43a8108cc5b6a80.png

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

(line = bufferedReader.readLine()) != null)以及一些中间变量例如line

384f45d09a760127f0f67df156e1a046.png

34241ca435bf27bf7ff2c583b0a4879f.png

cedcef2673a3f1d5ebadf7783b84d9c7.png

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

40fc6838f6871882d5e19d578bec52ab.png

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

0f63a93af52e105e400ba051f0ec3df3.png

d0812120fe21d286e6667f9a27ff3b0d.png

f03dc497e716edc65b82011c6ae77407.png

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

也可以这样写

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值