[譯]java8新特性:函數式編程(functional programming)的優勢

Java8引入了函數式編程,他對java是一個極大的擴展。Java今後不在是一個單純的面嚮對象語言,如今他同時混合了函數式編程。這是巨大的改變,須要咱們調整面對對象的編程習慣,以適應這些變化。java

 

可是爲何咱們須要去適應這些改變?爲何咱們須要花費時間精力上手函數式編程而不是直接用面對對象解決問題?編程

  • 函數式編程的引入,幫助咱們減小業務邏輯和代碼的分歧。他容許咱們在更高層次更天然的描述業務邏輯。讓代碼直接描述「你想作什麼」,而不是「你想怎樣去作」。
  • 許多樣板(boilerplates)能夠被移除,這會讓代碼更清晰更簡潔。
  • 高階函數(Higher-order functions)容許咱們:  
    • 發送方法到其餘方法中。
    • 在其餘方法中建立方法。
    • 從其餘方法中返回方法。

    這對Java來講是一個巨大的勝利,咱們須要發送,建立並返回對象來完成這項工做。咱們將能建立更健壯,更集中而且更容易重用的代碼。編程語言

  • 多虧lambda表達式,如今咱們能夠實現惰性求值(lazy evalutions)。當發送lambda表達式做爲一個方法的參數,Java編譯器會在lambda表達式在方法中被調用時才計算他的值。這跟通常的方法參數被直接求職是不同的。
  • lambda讓單元測試變得更加有趣~他容許咱們建立簡潔,小巧和快速的輕量級單元測試。用lambda咱們可以儲存測試代碼。他容許咱們測試各類場景對代碼的影響。
  • 探索新的模式。
  • 等等好處。

掌握新的函數式編程對於熟悉面對對象編程的開發者來講是一個挑戰,但他應該是一個很是受歡迎的挑戰。通過以前的的鋪墊,我所要說的是你真的應該學習一門函數式編程語言。他會讓你瞭解到他帶來的可能性和能量。我認爲這將幫助你在另外一個層面瞭解函數式編程。函數式編程

 

所以,掌握函數式編程,加上良好的面對對象思想,可以讓你的代碼更加牛b!函數

 

 

*英文連接:deadCodeRising單元測試

*原創譯文學習

相關文章
相關標籤/搜索