面向对象和面向过程_面向过程与面向对象的区别及优势和弊端

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

   面向过程:(Procedure-Oriented Progarmmiing (面向过程程序设计),简记为POP),一种以过程为中心的编程思想。面向对象:(Object Oriented Programming(面向对象程序设计),简记为OOP),将相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,是一种更贴近事物的自然运行模式。

思考:把大象装进冰箱需要几步?

0bc49e462d0cd0e4c87fb221ac9710a1.png

 面向过程:步骤是:打开冰箱,把大象装进冰箱,关闭冰箱编程实现:open(),put(),close()面向对象:对象:大象,冰箱编码实现:elephant,fridge对象的行为:大象进冰箱,冰箱打开,冰箱关闭再以实际情况调整对象行为的顺序:冰箱打开,大象进冰箱,冰箱关闭编辑实现:fridge.open(),elephant.put(), fridge.close()

总结:

    面向过程:把问题分解为若干个步骤,每个步骤实现为一个函数,按照顺序实现并在调用时传递数据给函数解答问题。面向对象:抽象出问题的各种对象,把对象的属性和解决问题方法封装在对象中,而后对各个对象之间通过行为实现解答问题。
概念补充
    对象:现实世界中存在的任意一个可以被明确标识的实体。例如上述例子中说讲述的:一个冰箱,一只大象等。类:具有同种属性的对象称为类,是个抽象的概念。比如“人”就是一类,其中包括小明,小红,小玲等等这些都是对象,类就相当于一个模具,他定义了它所包含的全体对象的公共特征和功能,对象就是类的一个实例化,小明就是人的一个实例化!我们在做程序的时候,经常要将一个变量实例化,就是这个原理!我们在做程序的时候一般都不用类名,比如我们在叫小明的时候,不会喊“人,你干嘛呢!”而是说的是“小明,你在干嘛呢!”类的成员主要包括:属性、方法和构造方法属性:对象静态的一面,如:大象的重量,形状等都是描述大象的属性方法:对象动态的一面,如:大象进冰箱,冰箱的关闭和打开构造方法:构造方法是一种特殊的方法,专用于构造该类的实例(如实例的初始化、分配实例内存空间等),Java语言通过new关键字来调用构造方法,从而返回该类的实例。构造方法的格式:权限修饰符 函数名(参数列表){函数体;}

面向过程与面向对象的优势与弊端

看了很多文章,发现了一篇将面向过程和面向对象比喻的十分淋漓尽致地文章,分享给大家

用面向过程的方法写出来的程序是一份蛋炒饭,而用面向对象写出来的程序是一份盖浇饭。所谓盖浇饭,北京叫盖饭,东北叫烩饭,广东叫碟头饭,就是在一碗白米饭上面浇上一份盖菜,你喜欢什么菜,你就浇上什么菜。我觉得这个比喻还是比较贴切的。蛋炒饭制作的细节,我不太清楚,因为我没当过厨师,也不会做饭,但最后的一道工序肯定是把米饭和鸡蛋混在一起炒匀。盖浇饭呢,则是把米饭和盖菜分别做好,你如果要一份红烧肉盖饭呢,就给你浇一份红烧肉;如果要一份青椒土豆盖浇饭,就给浇一份青椒土豆丝。蛋炒饭的好处就是入味均匀,吃起来香。如果恰巧你不爱吃鸡蛋,只爱吃青菜的话,那么唯一的办法就是全部倒掉,重新做一份青菜炒饭了。盖浇饭就没这么多麻烦,你只需要把上面的盖菜拨掉,更换一份盖菜就可以了。盖浇饭的缺点是入味不均,可能没有蛋炒饭那么香。到底是蛋炒饭好还是盖浇饭好呢?其实这类问题都很难回答,非要比个上下高低的话,就必须设定一个场景,否则只能说是各有所长。如果大家都不是美食家,没那么多讲究,那么从饭馆角度来讲的话,做盖浇饭显然比蛋炒饭更有优势,他可以组合出来任意多的组合,而且不会浪费。盖浇饭的好处就是”菜”“饭”分离,从而提高了制作盖浇饭的灵活性。饭不满意就换饭,菜不满意换菜。用软件工程的专业术语就是”可维护性“比较好,”饭” 和”菜”的耦合度比较低。蛋炒饭将”蛋”“饭”搅和在一起,想换”蛋”“饭”中任何一种都很困难,耦合度很高,以至于”可维护性”比较差。软件工程追求的目标之一就是可维护性,可维护性主要表现在3个方面:可理解性、可测试性和可修改性。面向对象的好处之一就是显著的改善了软件系统的可维护性。
总结
面向过程优势:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源,比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 弊端:没有面向对象易维护、易复用、易扩展面向对象优势:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统更加灵活、更加易于维护 弊端:性能比面向过程低
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值