面向对象与面向过程的区别
1. 面向过程pop(Process-oriented programming)
主要的关注点是:实现的具体过程,因果关系。
-- “面向过程”(是一种以事件为中心的编程思想)是以事件流程作为考虑问题的出发点,通过分析
解决问题所需的步骤,然后利用函数将这些步骤实现,并按照顺序调用。
* 优点:
对于业务逻辑比较简单的程序,可以进行快速的开发,前期投资成本较低。性能方面比面向对象
高,因为类调用的时候需要实例化,开销会比较大,比较消耗资源,因此诸如单片机、嵌入式开发、
Linux/Unix等一般采用的是面向过程的开发,这些对性能的要求较高。
* 缺点:
采用面向过程的思想有时会难以解决复杂的业务逻辑性问题。而且由于软件元素之间的联系
紧密,这就会导致软件元素之间的“耦合性”非常高,这就导致软件的扩展性以及可维护性变差,
如若中间有环节出现问题,整个系统就会受到影响。另外由于没有“独立体”的概念,所以无法达
到组件复用。
2.面向对象oop(Object Oriented Programming)
主要的关注点是:对象(独立体)能够完成哪些过程。
--“面向对象”(是以“对象”为中心的编程思想)是以参与该事件的角色(对象)作为考虑问题的出发点,
在处理问题时可以更加灵活,在软件的开发过程中,通过面向对象来把握事物间复杂的关系,分析系统。
*优点:
可以更加容易的解决复杂的业务逻辑,由于软件元素之间的“耦合性”低,这就使得软件的扩展性
以及可维护性得到增强,组件复用性强,这些都是由于面向对象的封装、继承和多态的特性。
*缺点:
在解决问题时需要将其分为不同的对象,并进行大量的系统分析与设计,导致前期的投资较高。
—C语言是纯面向过程的语言,Java是纯面向对象的语言
— 从结构上说,面向过程的特点是模块化和流程化,面向对象的特点是封装、继承和多态。
举例:盖浇饭(面向对象)与蛋炒饭(面向过程)