面向对象设计思想和函数式编程思想

1.函数式编程思想:核心主体是函数,函数可以作为参数,返回值,具有高度不可变性,是以函数为主体,如果传入参数是相等的,那么返回结果注定是相等。

2.面向对象编程思想:(1)封装:封装变化,可以做到重用,实现代码优雅简洁。

(2) 继承: 子类继承父类,实现子类可以继承父类的方法和属性,同时可以自己扩展,实现了代码的可扩展性,让程序更加灵活。

(3) 多态:多种形态。说白了就是两种体现形式:第一种就是向上转型,父类可以指向子类,实现多态。 第二种就是方法的重载,一个相同的方法作用给不同的对象,返回的结果不同,实现原理很多,但很多语言支持了“可变参数函数”的方法来实现方法的重载,进而实现多态。

时间: 2024-10-12 03:50:11

面向对象设计思想和函数式编程思想的相关文章

函数式编程思想:以函数的方式思考,第3部分

过滤.单元测试和代码重用技术 译者:Elaine.Ye原文作者:Neal Ford 发布:2011-07-06 11:23:24挑错 | 查看译者版本 | 收藏本文 在函数式编程思想的第一部分和第二部分中, 我考察了一些函数式编程的主题,研究了这些主题如何与Java?及其相关语言产生关联.本篇文章继续这一探索过程,给出来自前面文章的数字分类器的一个 Scala版本,并会讨论一些颇具学术色彩的主题,比如说局部套用(currying).部分应用(partial application)和递归等. 用

函数式编程思想:耦合和组合,第2部分

习惯于使用面向对象构建块(继承.多态等)的编程者可能会对这一方法的缺点及其他的可选做法视而不见,函数式编程使用不同的构建块来实现重用,其基于的是 更一般化的概念,比如说列表转换和可移植代码.函数式编程思想的这一部分内容比较了作为重用机制的经由继承的耦合和组合,指出了命令式编程和函数式编程之 间的主要区别之一. 在上一部分内容中,我说明了代码重用的不同做法.在面向对象的版本中,我提取出了重复的方法,把他们和一个受保护(protected)域一起移到 一个超类中.在函数式版本中,我把纯函数(不会带来

函数式编程思想:耦合和组合,第1部分

总是在某种特定抽象(比如说面向对象)中进行编码工作,这使得很难看清楚何时这一抽象会把你引向一种并非最好的解决方案上.作为这一系列的两篇文章中的头 一篇,本文探讨了用于代码重用的面向对象编程思想的一些影响,并把它们与一些更函数化的可选方法,比如说组合,进行比较. 面向对象编程通过封装变动部分把代码变成易懂的,函数式编程则是通过最小化变动部分来把代码变成易懂的.--Michael Feathers,Working with Legacy Code一书的作者,经由Twitter 每天都以某种特定的抽象

Js 函数式编程思想 (V客学院知识分享)

随之ECMAScript 标准规范不断更新,现在已经更新到ES7,不久ES8规范即将面世,为了是JS 语法对函数编程更加友好,诸如 RxJS (ReactiveX) 等函数式框架的不断流行.函数式编程则应该是以函数做为舰载主体,然后对函数进行拆分封装.更加抽象,可扩展性极强. 与传统命令式函数相比存在那些优势? 语法精简清晰 通用性更好 维护及可扩展性更好 限制作用域 以下列举函数对比 // 数组中每个单词,首字母大写 // 一般写法 const arr = ['apple', 'pen', '

阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第6节 Lambda表达式_1_函数式编程思想概述

函数式编程和面向对象的区别 原文地址:https://www.cnblogs.com/wangjunwei/p/11261580.html

JavaScript函数式编程(1):基本思想

1 函数式编程简介 函数式编程是和传统命令式编程区分的一种编程思想,"在函数式编程语言中,函数是第一类的对象,也就是说,函数 不依赖于任何其他的对象而可以独立存在,而在面向对象的语言中,函数 ( 方法 ) 是依附于对象的,属于对象的一部分.这一点决定了函数在函数式语言中的一些特别的性质,比如作为传出 / 传入参数,作为一个普通的变量等.[1]" 函数式编程思想的源头可以追溯到 20 世纪 30 年代,数学家阿隆左 . 丘奇在进行一项关于问题的可计算性的研究,也就是后来的 lambda

编程思想演变史

- 面向过程(C语言) - 面向对象 (Java) - 函数式编程 参考: 编程思想.哲学.道与术https://www.cnblogs.com/feng9exe/p/6782945.html 函数式编程( Functional)与命令式编程( Imperative)对比https://blog.csdn.net/bitcarmanlee/article/details/53158840 Golang哲学思想https://www.cnblogs.com/findumars/p/4097888.

IOS编程思想的概念

iOS几大编程思想 面向对象思想:万物皆对象,做一件事情的过程转变为对象处理事件的过程. 链式编程思想:将多个操作通过点(.)链接在一起成为一句代码,使得代码更好阅读.例如p.add(1).add(2).特别的地方在于每个方法返回一个block,这个block的返回值又是这个对象本身,block的参数需要自己考虑实际情况.这里在多讲一下,为什么add后面要加括号,还有参数.其实这个就是调用了这个block(block的调用就是括号,里面添加参数).其代表最出名的第三方框架是Masonry.不懂的

链式编程思想

接下来的部分摘自:最快让你上手之ReactiveCocoa基础篇 先简单介绍下目前咱们已知的编程思想. 1 面向过程:处理事情以过程为核心,一步一步的实现. 2 面向对象:万物皆对象 3 链式编程思想:是将多个操作(多行代码)通过点号(.)链接在一起成为一句代码,使代码可读性好.a(1).b(2).c(3) 链式编程特点:方法的返回值是block,block必须有返回值(本身对象),block参数(需要操作的值) 代表:Masonry框架. 4 响应式编程思想:不需要考虑调用顺序,只需要知道考虑