1. 程式人生 > 實用技巧 >1.21 指令式程式設計、宣告式程式設計的理解與思考

1.21 指令式程式設計、宣告式程式設計的理解與思考

指令式程式設計關注的是具體步驟。

宣告式程式設計關注的是最後的結果。

  • 指令式程式設計
    在平時常見的程式設計正規化就是指令式程式設計。來個生活中的例子說明一下什麼是指令式程式設計。比如,小紅想吃西紅柿炒雞蛋,然後她媽媽就去買菜、洗菜、做好西紅柿炒雞蛋。小紅她媽媽就是在執行指令式程式設計,必須清楚的知道每一步的動作。

下面再寫一個程式設計中對應的例子:

在一個集合中找到所有大於3的數字。

ArrayList<Integer> collation = new ArrayList<Integer>();
collation.add(1);
collation.add(4);
collation.add(5);
ArrayList<Integer> result = new ArrayList<Integer>();
for (int num : collation) {
    if( num % 2 == 1 ){
        result.add(num);
    }
}

不管在C/C++、java、python、javascript等語言中都存在這種寫法。

  • 宣告式程式設計
    下面再看看宣告式程式設計正規化。

還是拿上面那個小紅要吃西紅柿炒雞蛋的例子,我們現在站在小紅的角度來考慮一下問題,她關注的是最後能吃到西紅柿炒雞蛋,至於是她媽媽做的,還是她媽媽點外賣,還是她媽媽請大廚做的,其實都不重要。小紅其實就是在做宣告式程式設計,她只需要表達清楚想吃西紅柿炒雞蛋這件事就行了。

在程式設計中,SQL是最好的宣告式程式設計例子。還是拿上面那個在集合中找數字的例子,用SQL的話只需要像下面這樣就行。

select * from collection where num > 3

至於資料庫中如何實現這條語句,其實根本不用關心,我們關心得是最後獲取到得結果。