面向过程编程和面向对象编程
1、面向过程编程和面向对象编程的区别?
1.1 面向过程编程,将某一些简单的业务逻辑,顺序性地翻译成程序,组织形式为线性的,面条式的编程风格。而面向对象,则是将业务逻辑先翻译成类,在组织这些类去完成业务逻辑,组织形式为类。两者在思考的思维模式上是很大的区别。(很大习惯了CRUD的程序员,很容易使用面向过程编程的思维模式)。
2、面向过程编程语言和面向对象编程语言的区别?
2.1 面向过程编程语言,有C语言,VB语言。
2.2 面向对象编程语言,有java,python,GO,c#,c++等
3、面向对象编程比面向过程编程的优势在哪里?
3.1 由于面向对象编写的思考唯独是类,当我们接到需求,必须将需求映射成类。设计好这些类(面向对象设计,也是最难的地方)之后,再用面向过程的思维组织这些类去完成功能。
3.2 在大规模,复杂系统中往往是实现逻辑是网状结构。而简单功能的实现逻辑往往是线性的。
3.3 面向对象编程有利于设计大规模,复杂系统()。而面向过程编程,则在大规模复杂系统面前,显得有点难以下手。
3.4 面向对象编程,更贴近人类的思考模式(但是不容易面向对象设计)。面向过程编程,则更贴近机器思维(更贴近人类执行事情的思维,一条条地去完成)。(当某种编程语言足够高级,人们可以不用管底层的机器是怎样运作的)
4、为什么unix和linux不使用面向对象编程语言,而是用C语言这种面向过程语言?
4.1 虽然LINUX和nuix用的是面向过程编程语言,但是你会发现代码中,大量通过struct的结构体,实现了封装,多态,继承,抽象的功能。所以面向过程编程语言依然可以写出很好的面向对象编程风格的代码。
而且C语言,相对目前的“高级语言”,执行效率更高。
(操作系统虽然是用面向过程的C语言实现的,但是设计逻辑是面向对象的。C语言没有类和对象的概念,但是用结构struct同样实现了信息的封装,内核源码中也不乏继承和多条思想的体现,面向对象思想,不局限于具体语言)