心得 : 面向对象和面向过程的区别【分享】
面向对象:用线性的思维。与面向过程相辅相成。在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分析系统。微观上,仍然使用面向过程。
“面向过程”是一种是事件为中心的编程思想。就是分析出解决问题所需的步骤,然后用函数把这写步骤实现,并按顺序调用。
”面向对象“是以“对象”为中心的编程思想。
简单的举个例子:汽车发动、汽车到站。汽车启动是一个事件,汽车到站是另一个事件,面向过程编程的过程中我们关心的是事件,而不是汽车本身。针对上述两个事件,形成两个函数,之后依次调用。
对于面向对象来说,我们关心的是汽车这类对象,两个事件只是这类对象所具有的行为。而且对于这两个行为的顺序没有强制要求。
面向过程的思维方式是分析综合,面向对象的思维方式是构造。
可拓展性:
简单来说:用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,就是在米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。
蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。
蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。
到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。
盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭” 和“菜”的耦合度比较低。蛋炒饭将“蛋”“饭”搅和在一起,想换“蛋”“饭”中任何一种都很困难,耦合度很高,以至于“可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。
面向过程(OP)和面向对象(OO)是不是就是指编码的两种方式呢?不是!你拿到了一个用户需求,比如有人要找你编个软件,你是不是需要经过需求分析,然后进行总体/详细设计,最后编码,才能最终写出软件,交付给用户。这个过程是符合人类基本行为方式的:先想做什么,再想如何去做,最后才是做事情。有的同学说:“我没按照你说的步骤做啊,我是直接编码的”。其实,你一定会经历了这三个阶段,只不过你潜意识里没有分得那么清楚。对于拿到需求就编码的人,可能编着编着,又得倒回去重新琢磨,还是免不了这些过程,
以OO为例,对应于软件开发的过程,OO衍生出3个概念:OOA、OOD和OOP。采用面向对象进行分析的方式称为OOA,采用面向对象进行设计的方式称为OOD,采用面向对象进行编码的方式称为OOP。面向过程(OP)和面向对象(OO)本质的区别在于分析方式的不同,最终导致了编码方式的不同。
总的来说:
面向对象是将事物高度抽象化。
面向过程是一种自顶向下的编程
面向对象必须先建立抽象模型,之后直接使用模型就行了。
转载于:https://www.cnblogs.com/guzhengtao/p/20180820_1420.html
心得 : 面向对象和面向过程的区别【分享】相关推荐
- 心得 : 面向对象和面向过程的区别
http://www.cnblogs.com/dbEssay/p/6358253.html 面向对象:用线性的思维.与面向过程相辅相成.在软件开发过程中,宏观上,用面向对象来把握事物间复杂的关系,分 ...
- python面向对象和面向过程的区别_Python11-01_面向对象----面向对象和面向过程的区别...
面向对象编程 面向对象(OPP)编程思想主要针对大型软件设计而来的.面向对象编程使程序的扩展性更加强,可读性更好.使得编程可以像搭积木一样简单. 面向对象编程将数据和操作数据的方法封装到对象中,组织代 ...
- python 递归函数_Python尚学堂高淇|P82P86面向对象和面向过程的区别LEGB规则nonlocal_global递归函数阶乘计算案例...
P82-递归函数-阶乘计算案例 #使用递归函数计算阶乘def factorial(n):if n==1:return 1else:return n*factorial(n-1)result=facto ...
- C++ 面向对象与面向过程的区别与联系
转自:https://blog.csdn.net/jerry11112/article/details/79027834 前言: 如果你很想搞明白面向对象是什么,面向过程是什么,或者说二者之间的区别是 ...
- java面向对象与面向过程的区别
面向对象与面向过程的区别 面向过程与面向对象,只是一种思维方式的划分 面向过程 面向对象 区别 以分步骤的方式解决问题. 用方法组织代码. 以分类的方式解决问题. 用类组织代码. 共同点 细节上用 ...
- 面向对象与面向过程的区别与联系
面向对象与面向过程的区别与联系 一.区别 面向过程强调的是功能行为,以函数为最小单位,考虑怎么做. 面向对象,将功能封装进对象,强调具备了功能的对象,以类/对象为最小单位,考虑谁来做. 面向过程的分析 ...
- Java面向对象和面向过程的区别
面向对象,Obeject Oriented,是一种编程术语.面向对象是当今软件开发方法的主流方法之一,他是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是我们所说的对象.对同类对象抽象出其 ...
- 什么是面向对象?面向对象的特征?面向对象和面向过程的区别?
什么是面向对象? 面向对象是一种思想,世间万物都可以看做一个对象,这里只讨论面向对象编程(OOP), Java 是一个支持并发.基于类和面向对象的计算机编程语言. 面向对象软件开发具有以下优点: 代码 ...
- 面向对象和面向过程的区别及面试问答
面向对象和面向过程的区别 面向过程 :面向过程性能比面向对象高. 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机.嵌入式开发.Linux/Unix 等 ...
最新文章
- 阿里平头哥首款AI芯片发布!46倍于英伟达P4,刷新全球推理性能最高纪录
- 自定义Title(可以实现类似于携程网上价格的显示方式)
- 编译boost时 cmake的debug:math命令无法解析“*”号
- 解决Eclipse查看源代码出现Source not found的问题
- 微信的一个隐藏功能,我身边绝大多数人都不知道,其实很实用
- 微软为 Chromium 版 Edge 浏览器推出新的 logo
- python拖拽获取文件路径_求助tkinter模块如何获取拖拽文件的内容
- C语言 小游戏 电脑大概率获胜,用C语言实现简单的三子棋小游戏
- 全国计算机城市排名,这五大城市教育资源全国领先,各城市优质高校排行榜一定要收藏!...
- 信息学奥赛一本通(C++版)在线评测系统 - 题解目录
- 用java编写英寸到厘米的转换_像素、英寸、厘米的换算 - flyinglife - JavaEye技术网站...
- JS中国标准时间格式转换字符串
- Rivaple 江枫 MC服务器文档(创新生存部分)
- 我看《三体》:行走于黑暗森林,常防备降维打击
- php子孙树,递归 迭代 得到家谱树 子孙树
- 【git】统计每个人的代码行数
- 汇编语言程序设计——仿win7计算器(功能部分)
- 智能手环数据研究1——系统响应时延简易评估
- 学习单片机,除了需要电脑以外,还需要以下的一些器材
- 智能制造产业发展 推动鞋服行业新未来