面向过程(POP)与面向对象(OOP)
面向对象编程(Object Oriented Programing)简写为OOP
面向过程 (Procedure Oriented Programing) 简写为POP
面向过程
面向过程是自顶而下的编程模式。即把问题分解成一个一个步骤,每个步骤用函数实现,依次调用即可。
面向对象
面向对象是 将事务高度抽象化的编程模式,一种对现实世界理解和抽象的方法;将问题分解成一个一个步骤,对每个步骤进行相应的抽象,形成对象,通过不同对象之间的调用,组合解决问题。
关于面对过程和面对对象的例子可以参考
面向过程与面向对象的优缺点比较
面向过程
优点:流程化使得编程任务明确,在开发之前基本考虑了实现方式和最终结果,具体步骤清楚,便于节点分析;效率高,面向过程强调代码的短小精悍,善于结合数据结构来开发高效率的程序,
缺点:需要深入的思考,耗费精力,代码重用性低,扩展能力差,后期维护难度比较大;没有面向对象易维护、易复用、易扩展。
面向对象
优点:结构清晰,程序是模块化和结构化,更加符合人类的思维方式;易扩展,代码重用率高,可继承,可覆盖,可以设计出低耦合的系统;易维护,系统低耦合的特点有利于减少程序的后期维护工作量。由于面向对象有封装、继承、多态性的特性,使系统更加灵活、更加易于维护。
缺点:开销大,当要修改对象内部时,对象的属性不允许外部直接存取,所以要增加许多没有其他意义、只负责读或写的行为。这会为编程工作增加负担,增加运行开销,性能低,由于面向更高的逻辑抽象层,使得面向对象在实现的时候,不得不做出性能上面的牺牲,计算时间和空间存储大小都开销很大;性能比面向过程低。
面向对象与面向过程的区别与联系
面向对象与面向过程都可以实现代码重用和模块化编程,但是面对对象的模块化更深,数据更封闭,也更安全!因为面向对象的封装性更强!另外,面对对象的思维方式更加贴近于现实生活,更容易解决大型的复杂的业务逻辑,从前期开发角度上来看,面对对象远比面向过程要复杂,但是从维护和扩展功能的角度上来看,面对对象远比面向过程要简单!
对于它们的区别与联系,可以参考:
最后,我们可以参考