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


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

 

但是為什么我們需要去適應這些改變?為什么我們需要花費時間精力上手函數式編程而不是直接用面對對象解決問題?

  • 函數式編程的引入,幫助我們減少業務邏輯和代碼的分歧。他允許我們在更高層次更自然的描述業務邏輯。讓代碼直接描述“你想做什么”,而不是“你想怎樣去做”。
  • 許多樣板(boilerplates)可以被移除,這會讓代碼更清晰更簡潔。
  • 高階函數(Higher-order functions)允許我們:  
    • 發送方法到其他方法中。
    • 在其他方法中創建方法。
    • 從其他方法中返回方法。

    這對Java來說是一個巨大的勝利,我們需要發送,創建並返回對象來完成這項工作。我們將能創建更健壯,更集中並且更容易重用的代碼。

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

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

 

因此,掌握函數式編程,加上良好的面對對象思想,能夠讓你的代碼更加牛b!

 

 

*英文鏈接:deadCodeRising

*原創譯文


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM