1. 面向过程
面向过程是一种以事件为中心的编程思想,编程的时候把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。
2. 面向对象
在日常生活或编程中,简单的问题可以用面向过程的思路来解决,直接有效,但是当问题的规模变得更大时,用面向过程的思想是远远不够的。所以慢慢就出现了面向对象的编程思想。世界上有很多人和事物,每一个都可以看做一个对象,而每个对象都有自己的属性和行为,对象与对象之间通过方法来交互。面向对象是一种以“对象”为中心的编程思想,把要解决的问题分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个对象在整个解决问题的步骤中的属性和行为。
面向过程
优点:
流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析。
效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序。
缺点:
需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大。
面向对象
优点:
结构清晰,程序是模块化和结构化,更加符合人类的思维方式;
易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;
易维护,系统低耦合的特点有利于减少程序的后期维护工作量。
缺点:
开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,并且使程序显得臃肿。
性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大。
面向过程的解决步骤:
比较总结:
面向过程编程中,开发者注重于程序功能实现的过程,编程过程中扮演类似执行者的角色
面向对象编程中,开发者注重于对象的创建和调用,编程过程中扮演类似指挥者的角色
面向过程编程中,开发者可以精准把控程序执行的每一步和每一个细节(比如:手洗衣服过程中,衣服的哪个部位需要多搓一会,扇扇子的时候多扇头还是扇脚)
面向对象编程中,开发者无需知道对象的每一个细节,对象如何工作交给对象的设计者完成(当然开发者常常扮演设计者的角色,同时已经有很多东西已经被设计好了)
面向过程设计方式在中小型项目中更有优势。开发者只需要想好步骤,再依据步骤写下来即可。
面向对象设计方式在大中型项目中更有优势。开发者设计好对象后,只需调用对象完成任务使得代码更简洁易懂易于维护。
面向对象设计方式在宏观上是面向对象的,在微观上依旧是面向过程的。 在每个对象的内部有着它们的行为属性(扫地、洗衣服、吹风),设计者在设计如何让它们工作的过程中依旧是按照面向过程的思想让程序按照步骤执行。由此可见:面向过程是程序设计的基本方式