编程范式总结

  • Post author:
  • Post category:其他


1.什么是编程范式,编程范式都有哪些?

编程范式是一种方法论,用来指导你编写代码过程中的思路、规则、习惯和定式。是编码过程中一种纲领,起着引领的作用。编程范式和编程语言不同,有的范式只有少部分语言支持,有的范式很多语言都支持。有的语言只支持一种编程范式,有的语言支持多种范式。比如C++支持函数式编程,也支持面向对象编程、泛型编程。

常用的编程范式有:1.函数式编程2.面向过程编程3.面向对象编程4.泛型编程

2.编程范式的优缺点及支持的语言?

函数式编程是通过数学函数表达式的方式来避免状态和可变的数据,将一定的业务逻辑封装成函数,提高了代码的复用效率。程序通过一系列的函数调用完成对应的业务逻辑。函数式编程,业务逻辑清晰,函数复用比较好,但是由于函数本身不具有状态,对于一些比较复杂的需要记录状态的程序比较吃力。现在支持的函数式编程的语言有C/C++,Python,Lisp,Ruby等等

面向过程是C/C++里面最基本的编程范式了。编程的过程中是把业务拆解成一个个过程,然后按照流程去执行。常用的流程包括:变量声明、表达式、分支、循环、跳转。面向过程更倾向于关注业务流程怎么做,而不是做什么。主要分为两部分一部分解决数据和算法,一部分解决逻辑和控制。面向过程的编程范式,对于简单的算法和一些嵌入式系统中的控制逻辑应付起来得心应手,但对于现代社会中一些复杂的业务逻辑,比如互联网通信、网络业务等就明显无法应对。现在支持面向过程编程范式的语言有:C/C++、Java、Python、Ruby

面向对象编程是最近这几十年最流行的编程范式了,核心是想是”封装、继承、多态”。面向对象编程提倡把业务拆分成一个个对应的主体,每个主体实现高内聚低耦合。这些对象通过相互通信调用协作来完成对应的任务。面向对象范式在处理一些复杂的业务逻辑的时候会应对的游刃有余,但是在处理一些简单的业务逻辑的时候就会显得很蹩脚,过重。现在主流的编程语言大多都支持面向对象编程,包括C++、Java、Python、JS等。

泛型编程是STL纳入C++之后才出现的编程范式,通过引入模版template,将类型擦除。在STL标准库里有很多支持泛型的容器和算法,比如vector,list,map等。泛型编程很强大,但在日常开发过程中应用的比较少,使用起来比较复杂,目前我只在C++语言里面使用过泛型编程。

3.我应该采用哪种编程范式?

我们写代码的根本出发点,还是写出让周围人能看懂的代码。出于这个角度考虑,常用的范式是”面向过程+面向对象+函数式编程”,在没有具体的业务驱动的情况下慎用模版元的编程范式。

C++支持多种编程范式,包括函数式、面向过程、面向对对象、泛型编程,所以这几种范式都要掌握。但是在开发普通的应用程序的过程中,了解面向过程、面向对象、函数式编程就能解决大多数问题了,但是如果是开发面向程序员的库,那么就有必要深入了解一下泛型编程了。



版权声明:本文为yang1fei2原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。