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
至于数据库中如何实现这条语句,其实根本不用关心,我们关心得是最后获取到得结果。