面向对象:用线性的思维。与面向过程相辅相成。在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统。微观上,仍然使用面向过程。

“面向过程”是一种是事件为中心的编程思想。就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用。

”面向对象“是以“对象”为中心的编程思想。

简单的举个例子:汽车发动、汽车到站。汽车启动是一个事件,汽车到站是另一个事件,面向过程编程的过程中我们关心的是事件,而不是汽车本身。针对上述两个事件,形成两个函数,之后依次调用。

对于面向对象来说,我们关心的是汽车这类对象,两个事件只是这类对象所具有的行为。而且对于这两个行为的顺序没有强制要求。

面向过程的思维方式是分析综合,面向对象的思维方式是构造。

可拓展性:

简单来说:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,就是在米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。
蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。

蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。
到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。

盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,以至于“可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。

面向过程(OP)和面向对象(OO)是不是就是指编码的两种方式呢?不是!你拿到了一个用户需求,比如有人要找你编个软件,你是不是需要经过需求分析,然后进行总体/详细设计,最后编码,才能最终写出软件,交付给用户。这个过程是符合人类基本行为方式的:先想做什么,再想如何去做,最后才是做事情。有的同学说:“我没按照你说的步骤做啊,我是直接编码的”。其实,你一定会经历了这三个阶段,只不过你潜意识里没有分得那么清楚。对于拿到需求就编码的人,可能编着编着,又得倒回去重新琢磨,还是免不了这些过程,

以OO为例,对应于软件开发的过程,OO衍生出3个概念:OOA、OOD和OOP。采用面向对象进行分析的方式称为OOA,采用面向对象进行设计的方式称为OOD,采用面向对象进行编码的方式称为OOP。面向过程(OP)和面向对象(OO)本质的区别在于分析方式的不同,最终导致了编码方式的不同。

总的来说:

面向对象是将事物高度抽象化。

面向过程是一种自顶向下的编程

面向对象必须先建立抽象模型,之后直接使用模型就行了。

转载于:https://www.cnblogs.com/guzhengtao/p/20180820_1420.html

心得 : 面向对象和面向过程的区别【分享】相关推荐

  1. 心得 : 面向对象和面向过程的区别

    http://www.cnblogs.com/dbEssay/p/6358253.html  面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分 ...

  2. python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...

    面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...

  3. python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...

    P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...

  4. C++ 面向对象与面向过程的区别与联系

    转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...

  5. java面向对象与面向过程的区别

    面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分   面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...

  6. 面向对象与面向过程的区别与联系

    面向对象与面向过程的区别与联系 一.区别 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做. 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做. 面向过程的分析 ...

  7. Java面向对象和面向过程的区别

    面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...

  8. 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?

    什么是面向对象? 面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP), Java 是一个支持并发.基于类和面向对象的计算机编程语言. 面向对象软件开发具有以下优点: 代码 ...

  9. 面向对象和面向过程的区别及面试问答

    面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高. 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机.嵌入式开发.Linux/Unix 等 ...

最新文章

  1. 阿里平头哥首款AI芯片发布!46倍于英伟达P4,刷新全球推理性能最高纪录
  2. 自定义Title(可以实现类似于携程网上价格的显示方式)
  3. 编译boost时 cmake的debug:math命令无法解析“*”号
  4. 解决Eclipse查看源代码出现Source not found的问题
  5. 微信的一个隐藏功能,我身边绝大多数人都不知道,其实很实用
  6. 微软为 Chromium 版 Edge 浏览器推出新的 logo
  7. python拖拽获取文件路径_求助tkinter模块如何获取拖拽文件的内容
  8. C语言 小游戏 电脑大概率获胜,用C语言实现简单的三子棋小游戏
  9. 全国计算机城市排名,这五大城市教育资源全国领先,各城市优质高校排行榜一定要收藏!...
  10. 信息学奥赛一本通(C++版)在线评测系统 - 题解目录
  11. 用java编写英寸到厘米的转换_像素、英寸、厘米的换算 - flyinglife - JavaEye技术网站...
  12. JS中国标准时间格式转换字符串
  13. Rivaple 江枫 MC服务器文档(创新生存部分)
  14. 我看《三体》:行走于黑暗森林,常防备降维打击
  15. php子孙树,递归 迭代 得到家谱树 子孙树
  16. 【git】统计每个人的代码行数
  17. 汇编语言程序设计——仿win7计算器(功能部分)
  18. 智能手环数据研究1——系统响应时延简易评估
  19. 学习单片机,除了需要电脑以外,还需要以下的一些器材
  20. 智能制造产业发展 推动鞋服行业新未来

热门文章

  1. javascript函数调用的各种方法!!
  2. centos下cmake安装
  3. 如何把Access转成SQL Server的方法介绍
  4. Dynamics CRM 2015 站点地图公告配置实体显示名称的变更
  5. 包含天,时,分,秒的倒计时
  6. CentOS7查看开放端口命令
  7. 到底什么是API经济
  8. 【Todo】Java8新特性学习
  9. 交叉编译HTOP并移植到ARM嵌入式Linux系统
  10. 你好,C++(34)有一只叫做多利的羊 6.2.4 拷贝构造函数