1、面向过程编程:面向过程风格是一种流程化的编程风格,通过拼接一组顺序执行的方法来操作数据完成一项功能。更注重功能的实现的细节及过程。
2、面向对象编程:它以类或对象作为组织代码的基本单元,具有封装、抽象、继承、多态四个特性。实现一个功能,不关注具体细节,需要设计一个具有该功能的类包装起来。
3、面向对象编程相比起面向过程编程的优势
- 面向对象编程更适合大规模复杂程序的开发;
当面对一个大型的复杂程序,由于其错综复杂的流程和交互关系,很难将其简单地拆分成一条主线串成的简单步骤,而通常表现为一个网状关系结构。这个时候,面向过程编程的这种流程化和线性化的思维方式就会显得比较吃力,而面向对象编程的优势就比较明显了。这是因为,对于面向对象编程来说,我们首先要做的不是流程分解,而是为业务建模。我们需要思考的是,如何将业务需求抽象成对象,并且为不同的对象建立方法,如何设计不同对象之间的联系。设计好对象(类)之后,我们就可以将不同的类按照关系和流程组装起来,形成整个程序。这种思维模式,让我们在面对复杂问题的时候,能够更清晰地分解问题并创建模型,相应地,也提供了一种更为清晰和模块化的代码组织方式。
- 面向对象编程风格的代码更容易复用、扩展和维护;
因为面向对象编程提供的封装、抽象、继承和多态这些特性,能够更容易地帮我们写出易于复用、扩展和维护的代码。
- 面向对象编程语言更高级、更人性化;
从编程语言跟机器打交道的方式的演进规律中,我们可以总结出:面向对象编程语言比起面向过程编程语言,更加人性化、更加高级、更加智能。
4、在面向对象编程中,为什么容易写出面向过程风格的代码?
面向过程流程化的编程风格更符合人的思考习惯,如解决一个问题需要先干什么再干什么,一步步的执行。而面向对象编程风格正好相反。它是一种自底向上的思考方式。它不是先去按照执行流程来分解任务,而是将任务翻译成一个一个的小的模块(也就是类),设计类之间的交互,最后按照流程将类组装起来,完成整个任务,但并不是特别符合人类的思考习惯
参考文章:
浅谈面向对象编程相对于面向过程编程的优势