面向对象还是面向过程

时间:2022-06-28 19:52:14

1前言

关于面向对象与面向过程这个个问题必为每一个编程人员熟知。这两个问题犹如哲学界的唯心主义和唯物主义,是编程的最根本的东西。是构建工程的框架,语言的基础的支持,乃至我们编程的思维,这是最基础的编程问题。那么每个人都好奇到底他们两个间有什么差别,其实这个问题犹如当今的高速公路跟铁道似的,每一个都是都是如此的重要,在各自的领域扮演者不可替代的角色。这里首先介绍两者的大概内容(ps本人水平有限,如此问题绝对存在很大的片面,各位看客万望海涵)。

2面向过程

当最开始接触编程,本人在大学学习了C语言,就被教了面向过程,这里对于问题的思考是按照人类的思维每一个操作都按照特定的流程来工作,每一个过程都是特定操作,这里其实这里就很容易思考变量的存在在生命周期,每个变量的作用域,在自己的生命周期要不能出现错乱,这里说的都是表象。真正的面向过程是一种思维观念。
面向过程认为世界都是一系列的因果关系造成的,世界是由一个个相互联系的小系统组成,他们之间的因果关系明确,都有明确的开始和结束。在编程中,我们要找到过程的起点,顺藤摸瓜,分析每一部分,最终达到程序的终点。

3面向对象

面向对象就是认为世界是有相对独立的部分组成的,每一个部分都有与其他的部分都有相互关系,包括依赖关系、组合关系等等,后面会详细介绍。每个相互独立的个体都会与其他的个体产生联系,最终构成了一个系统。我认为这种思维观念更容易构造复杂的系统。对于分析更加复杂的问题有很大的帮助,这里面向对象的编程真正用语言表达不太容易,真正接触了才能更加容易的理解。如果没有接触过面向对象的编程,并且不打算接触面向对象的编程,那么其实按照自己的思维习惯就完全可以应付编程的问题。没必要研究这个问题。其实本文对于你基本没帮助。

4差别

我认为面向过程更深入。毕竟汇编c都是面向过程的。效率当然更高(ps貌似是的,效率问题不太懂),面向过程对于库的扩展都要非常熟悉,你就要对于每一个实现方法都要知道,学习成本更高。并且实现细节都要非常熟悉,哎呀写不下去了。这个要多看。
面向过程可以简化编程总之很好,便于项目管理,有利于项目解耦,项目易于阅读,代码少。

面向对象的核心

面向对象的关键思想是“多态”,这样是对数据封装的一个很好体现,并且所有的继承都是围绕着多态进行的。
多态是:我们只关注父类(大多是抽象类),实现方法我们根据情况决定(子类);