Q 什么是面向过程编程? 什么是面向过程编程语言?
A 实际上 这个问题没有严格的官方定义, 理解这两个概念最好的方式是跟面向对象编程和面向对象编程语言进行对比. 相较于面向对象编程以类为组织代码的基本单元, 面向过程编程则是以过程(或者方法)作为组织代码的基本单元. 它最主要的特点就是数据和方法相分离. 相较于面向对象编程语言, 面向过程编程语言最大的特点就是不支持丰富的面向对象的特性, 比如封装, 继承, 多态
Q 面向对象编程相比面向过程编程有哪些优势?
A 面向对象编程相比面向过程编程主要优势有3个
- 对于大规模复杂程序的开发, 程序的处理流程并非单一的一条主线, 而是错综复杂的网状结构, 面向对象编程比起面向过程编程,更能应对这种复杂类型的程序开发. (面向对象编程可以更好地处理非线性结构的程序开发)
- 面向对象编程相比面向过程编程, 具有更加丰富的特性(封装, 继承, 多态, 抽象), 利用这些特性便携的代码,更加易扩展, 易复用, 易维护
- 从编程语言跟机器打交道的方式的演进规律中, 我们可以总结出,面向对象编程语言比起面向过程编程语言 更加人性化, 更加高级, 更加智能
Q 在文章中我讲到,面向对象编程比面向过程编程,更加容易应对大规模复杂程序的开发。但像 Unix、Linux 这些复杂的系统,也都是基于 C 语言这种面向过程的编程语言开发的,你怎么看待这个现象?这跟我之前的讲解相矛盾吗?
A 我觉得不矛盾, 毕竟系统都是 早年间的产物, 早年间的编程语言环境还是相对匮乏,而且C语言更贴近汇编, 后期很多高级语言也是基于C语言开发出来的,
面向对象语言说白了就是对面向过程语言的一种封装罢了
网友评论