參考文章
函數式編程及響應式編程之己見_Java_Tycho‘s Blog-CSDN博客
1、函數式編程是從編碼實現的角度來說的,即通過編程語言中的方法(method)來實現數學中函數(function)概念。數學中函數的概念存在一個輸入和一個輸出,通過對輸入進行一定的運算來獲得一個輸出,從而形成一一對應的關系。那么直接通過讓方法擁有一個入參和一個返回值不就滿足了嗎?這樣確實可以,但這只形成了一種模式下的一一對應關系,這唯一的模式即為定義方法時內部指定的邏輯。當需要構建另一種模式下的一一對應關系時,就必須再新建一個方法。當大部分對應模式只有一小部分邏輯不同時,就需要考慮方法復用的問題,即定義方法時只指定對應模式中共有的部分,不同的一小部分邏輯在調用方法時作為參數傳入。通過編碼層面的方法定義和調用實現數學函數一一對應模式的實時動態確定。當然,對於需要動態確定的一小部分邏輯,可以在編碼時通過方法調用時就明確指定,也可以去在運行時根據不同的情況將其作為對象傳入。
2、響應式編程是從運行結果的角度來看的。程序的運行結果中至少存在兩端,並且對這兩端來說,至少可以一端的變化能夠引起另一端的變化,也可以兩端之間互相引起對方的變化。在實現層面一般通過觀察者模式來實現,並且涉及發送、接收和處理的過程。
