Functional Reactive Programming(以下簡(jiǎn)稱FRP)是一種響應(yīng)變化的編程范式。
簡(jiǎn)單舉例
var A : Int = 2
var B : Int = 3
var c = A + B //c = 5
A = 3
//如果使用FRP,C的值將會(huì)隨著A的值改變而改變,所以叫做「響應(yīng)式編程」
FRP提供了一種信號(hào)機(jī)制來實(shí)現(xiàn)這樣的效果,通過信號(hào)來記錄值的變化。信號(hào)可以被疊加、分割或合并。通過對(duì)信號(hào)的組合,就不需要去監(jiān)聽某個(gè)值或事件。在項(xiàng)目中也經(jīng)常需要這種方式實(shí)現(xiàn)交互。
例如有這樣一種功能,文本框+按鈕,當(dāng)有文字輸入時(shí),按鈕點(diǎn)亮可交互;在iOS中通常用delegate模式,本質(zhì)上是事件的分發(fā)和響應(yīng)。這種做法因的缺點(diǎn)是不夠直觀,尤其在邏輯比較復(fù)雜的情況下。而FRP主要有兩個(gè)好處:直觀和靈活。直觀的代碼容易編寫、閱讀和維護(hù),靈活的特性便于應(yīng)對(duì)變態(tài)的需求。