编程范式
分为结构性编程,面向对象编程,函数式编程
好处:在以前人们是用汇编写代码,但是效率太低,而且跳转语句goto会影响人们对问题的拆分,一行代码中各种goto语句没有结构,熟悉代码也要很长时间。因此出现了ifelse,选择语句控制语句,这些语句很好的支持了功能分解,更有结构层次感相比于之前的 goto更好理解
这个是最难理解的一种编程范式,结构性最简单ifelse小学生都可以理解,对象型稍微难一些设计软件需要按照面向对象的三个特性进行设计,不再是随意摆放的构造快,需要将基本快按照 现实世界的 业务模型 进行重组,
函数式编程是最难理解的一个范式,按照函数功能模型进行拆解不变的功能模型,在设计时需要将业务中变和不变的部分识别出来,将不变的部分抽象为函数的接受者receiver,根据变的部分进行组合传参来完成复杂的函数功能。使用者根据提供方提供出来的函数模型根据自己的需要传入自己的函数构造快,从而组合出一个新的完成函数功能的构造快。
函数式编程为什么受到人们的追捧:
面对对象组合的是类和数据,而函数式编程组合的是函数功能。
在设计时可以用面向对象的方式对系统进行搭建,在设计其中函数接口的时候用函数式编程实现。分离变和不变通用的处理逻辑。
面向对象是对领域模型抽象。
推荐书籍:函数式编程思维
组合在于表达力和函数的功能得到了大大增强,那么不变性提高了程序的什么呢?
在程序中变量是不稳定的,由于不稳定那么程序的执行顺序和多线程环境下就会出现很多问题(比如a在调用过程中b插了一手 改变了程序中的全局变量导致a的输出发生了变化;多线程环境下要保证缓存同步可见性等问题会导致执行效率下降和出现大量的解决非需求的代码)。
不变性分为 值的不变和纯函数两种。
值不变是指 变量在初始化之后不会发生改变,纯函数是指函数无副作用不会修改程序的全局变量改变程序的状态 对程序造成影响。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。