函数式编程、面向对象编程、面向过程编程

本文探讨了函数式编程的主要特点,如代码简洁、易于理解、便于代码管理和并发编程,但也指出其可能的缺点,如深层函数嵌套导致的调试困难和复用性较低。相比之下,面向对象编程强调多态、封装和继承,适合大型项目,具有较高的复用性和灵活性,但可能在拓展性上不如函数式编程。
摘要由CSDN通过智能技术生成

函数式编程:

它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。举例来说,现在有这样一个数学表达式。

1. 代码简洁,开发快速

函数式编程大量使用函数,减少了代码的重复,因此程序比较短,开发速度较快。

2. 接近自然语言,易于理解

函数式编程的自由度很高,可以写出很接近自然语言的代码。

前文曾经将表达式(1 + 2) * 3 - 4,写成函数式语言:

  subtract(multiply(add(1,2), 3), 4)

对它进行变形,不难得到另一种写法:

  add(1,2).multiply(3).subtract(4)

这基本就是自然语言的表达了。再看下面的代码,大家应该一眼就能明白它的意思吧:

  merge([1,2],[3,4]).sort().search("2")

因此,函数式编程的代码更容易理解。

3. 更方便的代码管理

函数式编程不依赖、也不会改变外界的状态,只要给定输入参数,返回的结果必定相同。因此,每一个函数都可以被看做独立单元,很有利于进行单元测试(unit testing)和除错(debugging),以及模块化组合。

4. 易于"并发编程"

函数式编程不需要考虑"死锁"(deadlock),因为它不修改变量,所以根本不存在"锁"线程的问题。不必担心一个线程的数据,被另一个线程修改,所以可以很放心地把工作分摊到多个线程,部署"并发编程"(concurrency)。

缺点: 函数嵌套太深,如果出bug不好排查

复用性比较低。没办法完成大型项目的扩展

函数式编程初探 - 阮一峰的网络日志

面向对象:

面向对象的特点是多态,封装,继承,面向对象的可复用性比较高,比较适合操作大型项目,能够设计出高内聚,低耦合的对象,代码的复用性,灵活性都比较高。比较适合做大型项目。拓展性强

1.2、面向过程的编程思想

	面向过程核心是"过程"二字,过程即流程,指的是做事的步骤:先什么、再什么、
后干什么基于该思想编写程序就好比在设计一条流水线,即无论采用什么语言、无
论依据何种编程范式设计出的程序,最终的执行都是过程式的。

优点: 比较符合计算机执行的习惯,比较符合人的思维

缺点: 拓展性差,整个环节有一点修改,就需要重新组织过程步骤。

函数式编程偏向面向过程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值