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

一、区别简述

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

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

二、案例

小明起床上班这件事;

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

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

代码讲解面向过程:

第一步:getUp(){dosomething};

第二步:wash(){dosomething};

第三步:drive(){dosomething};

代码讲解面向对象:

function Person(bed,toothbruth,car){
this.bed=bed;
this.toothbruth=toothbruth;
this.car=car;
this.work=function(){
    getUp();
    wash();
    drive();
   }
};
var xiaoMing=new Person('席梦思','黑人','宝马');xiaoming.work();

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

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

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

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

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

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

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

  • 34
    点赞
  • 169
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值