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

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

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

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

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

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

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

可拓展性:

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

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

盖浇饭的好处就是“菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是“可维护性”比较好,“饭”

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

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

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

总的来说:

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

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

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

时间: 2024-10-12 22:45:52

心得 : 面向对象和面向过程的区别的相关文章

面向对象和面向过程的区别及优劣对比详解

以前上面向对象这门课的时候,我是没有特别注意这些. 但现在发现面向对象和面向过程的设计思想是很重要的 1.面向对象和面向过程有什么区别? 面向对象程序设计和面向过程程序设计的区别实际就是解决问题的方式不同. 先解释面向过程,你得先分析出解决问题的步骤,然后用函数把这些步骤一步一步地实现,解决的时候就是一个一个函数地调用. 面向对象,首先你需要知道对象的概念. 对象,就是类中某个具体的实例,比如人类张三,李四就是类的某个对象,他们有自己独特的个性.  面向对象,看名字它是注重对象的.当解决一个问题

面向对象和面向过程的区别

面向对象和面向过程 1.面向过程程序设计方法的实质上是从计算机处理问题的观点来进行程序设计工作:输入——运算——输出.面向过程程序设计者需要变更习惯的思维方法以贴近 计算机的内部工作机理.面向过程程序设计所具有的流的工作性质,试图通过信息流及其转换来认识系统,不仅加大了程序设计的难度,同时亦使得程序的可理解性 比较差. 面向对象程序设计方法中,一种普遍采用的优化方法是使用结构化的程序设计方法. 面向过程程序设计方法一般适宜采用自上而下的设计方法. 面向过程程序设计方法需要在一开始就全面的,自上而

C语言和OC的区别? 面向对象和面向过程的区别?

C语言: 1.C是结构化语言,层次清晰,调试和维护比较容易; 2.效率高,可移植性强. Object-C语言: 1.扩展了C语言,使它具备面向对象设计的能力,例如类.消息.继承: 2.可实现底层系统编程: 3.支持利用动态架构进行开发. C和OC的区别:OC中兼容C的语法 ,两者可以混合编码,OC是面向对象的,有类和对象的概念,C是面向过程的语言. 重点: 面向过程编程和面向对象编程有何区别? http://blog.sina.com.cn/s/blog_4dd5955301000a2m.htm

面向对象-面向对象和面向过程的区别

两者都是软件开发思想,先有面向过程,后有面向对象.在大型项目中,针对面向过程的不足推出了面向对象开发思想. 区别 1. 编程思路不同: 面向过程以实现功能的函数开发为主,而面向对象要首先抽象出类.属性及其方法,然后通过实例化类.执行方法来完成功能. 2. 封装性:都具有封装性,但是面向过程是封装的是功能,而面向对象封装的是数据和功能. 3. 面向对象具有继承性和多态性,而面向过程没有继承性和多态性,所以面向对象优势是明显.

PHP语言 -- 面向对象和面向过程的区别

例子:求阴影面积 面向过程 $r1 = 20; $r2 = 10; $mj = 3.14*$ri*$ri-3.14*$r2*$r2; echo $mj; 面向对象 class Yuan { private $r; function __construct($r) { $this->r = $r } function Mj() { return 3.14*$this->r*$this->r; } } $yuan1 = new Yuan(20); $yuan2 = new Yuan(10);

面向对象与面向过程的区别

面向过程:为了把大象装进冰箱,需要3个过程.1) 把冰箱门打开(得到打开门的冰箱)2) 把大象装进去(打开门后,得到里面装着大象的冰箱)3) 把冰箱门关上(打开门.装好大象后,获得关好门的冰箱)每个过程有一个阶段性的目标,依次完成这些过程,就能把大象装进冰箱. 1:冰箱开门(冰箱)冰箱装进(冰箱, 大象)冰箱关门(冰箱)==换个写法(冰箱开门 冰箱)(冰箱装进 冰箱 大象)(冰箱关门 冰箱) 2:冰箱关门(冰箱装进(冰箱开门(冰箱), 大象))==换个写法(冰箱关门 (冰箱装进 (冰箱开门 冰箱

面向对象编程和面向过程的区别

面向对象和面向过程的区别,实在是难用一两句话说明白. 面向过程是一种直接的编程方法,它是按照编程语言的思路考虑问题.尤其是想C语言这种过程式语言,它就是通过顺序执行一组语句来实现一个功能,这些语句的执行过程就是整个程序.不同的语言解决同一个问题的过程是不一样的. 面向对象是一种抽象度更高的编程方法.它把眼光集中在了要解决问题本身而不是语言上.它的目标是使模块的抽象度更高,可复用性更好.面向对象的目的就是可复用. 举个例子,比如我们要写一个计算器程序.这个计算机目前只要求有加减乘除四种运算. 用面

面向对象与面向过程的本质的区别

一.面向对象与面向过程的区别面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了:面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为. 可以拿生活中的实例来理解面向过程与面向对象,例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1.开始游戏,2.黑子先走,3.绘制画面,4.判断输赢,5.轮到白子,6.绘制画面,7.判断输赢,8.返回步骤2,9.输出最后结果.把上

面向对象与面向过程

一.面向对象与面向过程的区别: 二者都是一种思想,面向对象是相对于面向过程而言的.面向过程,强调的是功能行为.面向对象,将功能封装进对象,强调具备了功能的对象.面向对象更加强调运用人类在日常的思维逻辑中采用的思想方法与原则. 二.面向对象的三大特征: ①封装(Encapsulation)②继承(Inheritance)③多态(Polymorphism) 面向对象简称OOP( Object Oriented Programming) 面向过程(procedure oriented programm