聲明式編程 與 命令式編程:
- 命令式編程:描述計(jì)算機(jī)所做行為的編程規(guī)范
- 聲明式編程:響應(yīng)式編程屬于聲明式編程的一種队伟,通過給計(jì)算描述目標(biāo)的性質(zhì)摆昧,讓計(jì)算機(jī)明白目標(biāo)割粮,而不是處理流程,只告訴計(jì)算機(jī)想要的結(jié)果捌蚊。
兩者的區(qū)別:
假設(shè)我想要找出一個(gè)Int類型數(shù)組中的大于10的數(shù)扔涧,并返回一個(gè)由大于10的數(shù)字組成的數(shù)組园担。
-
命令式編程:
假如通過命令式編程,我們會(huì)通過告訴計(jì)算機(jī)枯夜,包括如何遍歷數(shù)組弯汰、如何使用 if 比較大小、數(shù)據(jù)類型的定義等卤档。
我們必須為計(jì)算機(jī)定義蝙泼,規(guī)劃好指定的執(zhí)行流程。
-
聲明式編程劝枣;
有一個(gè)非常常見的聲明式編程語(yǔ)言SQL汤踏,假如我們按照上述的例子,使用SQL則是這樣寫:
通過比較可以看出舔腾,聲明式語(yǔ)言在某些場(chǎng)景下可以極大地簡(jiǎn)化代碼溪胶。通過歸納抽離部分,實(shí)現(xiàn)對(duì)通用代碼的簡(jiǎn)化操作稳诚。而且哗脖,聲明式編程通常是以數(shù)據(jù)(或者數(shù)據(jù)流)為導(dǎo)向的,聲明式編程通常可以更好的用于處理數(shù)據(jù)(例如spark中大量使用的scala語(yǔ)言)才避。但是橱夭,當(dāng)我們寫業(yè)務(wù)邏輯,我們通常必須要寫命令式代碼桑逝,并不能方便地在我們的專項(xiàng)業(yè)務(wù)里也存在一個(gè)可以歸納抽離的實(shí)現(xiàn)棘劣。