ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

【编程范式】范式新感悟

2022-01-26 02:00:10  阅读:144  来源: 互联网

标签:感悟 范式 函数 编程 内存 面向对象编程 变量


范式

  目前有三种主流的说法,结构化编程、函数式编程、面向对象编程;他们分别限制了程序员写程序的能力

  • 结构化编程批判了go to,引入循环、分支等结构保证了程序的安全稳定性;
  • 自从发明了变量可以放到内存后,函数变量可以在函数退出后继续存在于内存中,引出面向对象编程;

函数式编程

  例子入门:  

print (take 25 (map (fn [X] ( * X X) )))

  上面的例子,其实等价于:

public class Squint {
   public static void main(String args[]){
       for(int i=0;i<25;i++){
          System.out.print( i*i);
       }
   }  
}

  其实函数式编程对比OOP,最大的不同就是变量是不可变而且没有放在内存堆中;

  函数式编程的变量是不可变的

  做架构想要应用好函数式编程,那么就需要在设计中学会分离可变组件和不可变组件;可变组件通常可以抽象为命令

  事件溯源:

  eventSource就是函数式编程的一种体现;没有了变量,自然就可以避免并发的问题

  版本控制:

  其实git本身就是事件溯源的应用

面向对象编程

  什么是对象?继承、封装、多态?其实对象的核心是状态,当抽象出来的数据代表了状态,代表状态的数据可以脱离函数控制范围之后,使得OOP有了意义。而多态则约定,则直接限制了程序员的能力,对函数指针的控制能力。

标签:感悟,范式,函数,编程,内存,面向对象编程,变量
来源: https://www.cnblogs.com/iCanhua/p/15845246.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有