zoukankan      html  css  js  c++  java
  • [译]java8新特性:函数式编程(functional programming)的优点

    Java8引入了函数式编程,他对java是一个极大的扩展。Java从此不在是一个单纯的面向对象语言,现在他同时混合了函数式编程。这是巨大的改变,需要我们调整面对对象的编程习惯,以适应这些变化。

    但是为什么我们需要去适应这些改变?为什么我们需要花费时间精力上手函数式编程而不是直接用面对对象解决问题?

    • 函数式编程的引入,帮助我们减少业务逻辑和代码的分歧。他允许我们在更高层次更自然的描述业务逻辑。让代码直接描述“你想做什么”,而不是“你想怎样去做”。
    • 许多样板(boilerplates)可以被移除,这会让代码更清晰更简洁。
    • 高阶函数(Higher-order functions)允许我们:  
      • 发送方法到其他方法中。
      • 在其他方法中创建方法。
      • 从其他方法中返回方法。

        这对Java来说是一个巨大的胜利,我们需要发送,创建并返回对象来完成这项工作。我们将能创建更健壮,更集中并且更容易重用的代码。

    • 多亏lambda表达式,现在我们可以实现惰性求值(lazy evalutions)。当发送lambda表达式作为一个方法的参数,Java编译器会在lambda表达式在方法中被调用时才计算他的值。这跟一般的方法参数被直接求职是不一样的。
    • lambda让单元测试变得更加有趣~他允许我们创建简洁,小巧和快速的轻量级单元测试。用lambda我们能够储存测试代码。他允许我们测试各种场景对代码的影响。
    • 探索新的模式。
    • 等等好处。

    掌握新的函数式编程对于熟悉面对对象编程的开发者来说是一个挑战,但他应该是一个非常受欢迎的挑战。经过之前的的铺垫,我所要说的是你真的应该学习一门函数式编程语言。他会让你了解到他带来的可能性和能量。我认为这将帮助你在另一个层面了解函数式编程。

    因此,掌握函数式编程,加上良好的面对对象思想,能够让你的代码更加牛b!

    *英文链接:deadCodeRising

    *原创译文

  • 相关阅读:
    [cf 947E] Perpetual Subtraction
    loj3120. 「CTS2019 | CTSC2019」珍珠
    loj「LibreOJ NOI Round #2」不等关系
    loj6395. 「THUPC2018」城市地铁规划 / City
    loj2553. 「CTSC2018」暴力写挂
    loj6270. 数据结构板子题
    loj6358. 前夕
    loj6677. EntropyIncreaser 与菱形计数
    fiddler模拟接口响应数据
    Fiddler请求详解/autoResponseder重定向
  • 原文地址:https://www.cnblogs.com/wanshiming/p/9022325.html
Copyright © 2011-2022 走看看