首先,我们先从编程语言的角度,看看这两者之间的区别。
面向过程最典型的编程语言就是C语言,面向对象的语言则有C++、java、C#等。
C语言中,基本的数据类型就是变量、数组、结构体、函数,当我们在使用这些数据类型编程时,主要考虑的就是如何把需要处理的数据放在合适的数据类型中,并按照事情发生的先后顺序依次调用函数,完成业务逻辑的处理。
而面向对象的语言中,最重要的概念就是类,类的实例化结果就是对象。这类语言在设计过程中,参考了很多现实生活中的处理模型,如汽车是一个很抽象的物体,但是如果说奔驰汽车、宝马汽车就很具体了,这些汽车又有高配低配之分,汽车可以行驶等。
汽车的这些模型,分别对应面向对象中的基类、派生类、属性和方法等概念。由此可见,在使用面向对象编程时,对数据的合理封装是其主要核心工作。
最后,总结一下,面向过程编程的核心技术是数据结构与算法;面向对象编程的核心技术是23种设计模式。大家一定要熟练掌握!
编程界有两大思想:面向对象、面向过程,相信大家都很熟悉。常见的面向过程的编程语言有C,面向对象的语言有:C++、Java、C#、PHP、Python等。大多数虽说知道这两者的概念,但要让我们说出个所以然来,又不知从何说起。
面向过程(POP)
面向过程就是指分析出解决问题的步聚,通过函数一步步的去实现,并按顺序去调用。整个事件都是过程驱动的,比如:开始 -》输入数据 -》处理数据 -》循环 -》任务完成。因此也被称为“结构化编程”。
1、优点:
性能上稍强于面向对象(没有创建对象的开销),一般注重性能开销的系统基本会用POP模式开发,比如:单片机、嵌入式开发、Linux开发等。
2、缺点:
代码片段过多、不易维护和扩展、不易复用。
面向对象(OOP)
我们将构成问题的事物理解成多个“对象”,无需关心对象内部是如何实现的,只要了解对象在整个问题处理中所做的行为即可。OOP有三大基本特性:继承、封装、多态。
1、优点:
易维护和扩展、易复用,采用面向对象思想可以设计出低耦合的系统,同时也增加了系统的灵活性。
2、缺点:
调用需要创建对象,增加系统开销。
二者关系
严格意义上来说面向对象和面向过程只是一种编程思想,这两者也是相辅相成的关系。我们一般在宏观(全局)上以面向对象的思想来组织及表现事物间的复杂关系,但在微观(局部)上还是以面向过程形式完成具体功能。简单来说,即使我们采用的是面向对象的编程思想来编程,依旧也存在面向过程的思想(比如类中方法的实现)。
以上就是我的观点,对于大家是怎么看待的呢?欢迎在下方评论区交流 ~ 我是科技领域创作者,十年互联网从业经验,欢迎关注我了解更多科技知识!