⾯向过程与⾯向对象的区别
⼀、区别
1.编程思想不同
⾯向过程:是⼀种以过程为中⼼的编程思想。都是以什么正在发⽣为主要⽬标进⾏编程。
⾯向对象:是⼀类以对象作为基本程序结构单位的程序设计语⾔,指⽤于描述的设计是以对象为核⼼,⽽对象是程序运⾏时刻的基本成分。
2.特点不同
⾯向过程:就是分析出解决问题所需要的步骤,然后⽤函数把这些步骤⼀步⼀步实现,使⽤的时候⼀个⼀个依次调⽤就可以了。
⾯向对象:是把构成问题事务分解成各个对象,建⽴对象的⽬的不是为了完成⼀个步骤,⽽是为了描叙某个事物在整个解决问题的步骤中的⾏为。
3.优势不同
⾯向过程:不⽀持丰富的“⾯向对象”特性(⽐如继承、多态),并且不允许混合持久化状态和域逻辑。
⾯向对象:在内部被表⽰为⼀个指向⼀组属性的指针。任何对这个对象的操作都会经过这个指针操作对象的属性和⽅法。
⼆、优缺点
⾯向过程(Procedure Oriented Programming)
⾯向过程是具体化的,流程化的,解决⼀个问题,你需要⼀步⼀步的分析,⼀步⼀步的实现。
优点:性能⽐⾯向对象好,因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源。⽐如单⽚机、嵌⼊式开发、 Linux/Unix等⼀般采⽤⾯向过程开发,性能是最重要的因素。
缺点:不易维护、不易复⽤、不易扩展。
⾯向对象(Object Oriented Programming)