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

释放双眼,带上耳机,听听看~!

一、区别简述

面向过程(Procedure Oriented):以过程为核心,强调**事件的流程、顺序,**如:C语言。

面向对象(Object Oriented):以对象为核心,强调**事件的角色、主体,**如:C++、Java。

二、案例

小明起床上班这件事;

从面向过程的角度看就是:1、起床;2、刷牙洗脸;3、开车上班。

从面向对象的角度看就是:主人公:小明;拥有的财产:床、牙刷、车;小明可以做什么:从床上站起来、刷牙、开车。

代码讲解面向过程:

第一步:getUp(){dosomething};

第二步:wash(){dosomething};

第三步:drive(){dosomething};

代码讲解面向对象:


1
2
3
4
5
6
7
8
9
10
11
12
1function Person(bed,toothbruth,car){
2this.bed=bed;
3this.toothbruth=toothbruth;
4this.car=car;
5this.work=function(){
6    getUp();
7    wash();
8    drive();
9   }
10};
11var xiaoMing=new Person('席梦思','黑人','宝马');xiaoming.work();
12

三、通过分析以上案例来具体看两者区别

面向过程:通过分别调用getUp()、wash()、drive()来完成一件事,每一步都是一个过程,整个过程循环渐进。

优点:根据事情的目的分解出过程,然后一步步实施;
对于不复杂的事件执行效率快。

缺点
只关注眼前事件的实现。

面向对象:先定义一个类别Person,列出属于该类别的属性及功能,new出一个实例xiaoMing,调用实例的方法work,在调用实例的方法中大家可以看到其内部也是一种面向过程的实现,所以面向对象与面向过程并不是互斥的,面向对象内可以有面向过程的设计。

优点:不仅关注眼前的事件实现,也关注未来可能发生的事件,比如要实现‘小明开发送朋友’。只需要在Person类里面加入sendFriend方法就可以。具有
高度的拓展性(体现出对象的多态性)和
复用性(对于类似的人,动作,直接new一个对象传入不同的参数即可),特点是
继承、封装、多肽。

缺点:跟面向过程正好相反,如果只是
单一的功能实现,面向对象的设计思路就显得过于繁琐。

给TA打赏
共{{data.count}}人
人已打赏
安全经验

海外中文博客与Adsense

2021-10-11 16:36:11

安全经验

安全咨询服务

2022-1-12 14:11:49

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索