面向对象与面向过程最本质的区别

简介: 面向对象与面向过程最本质的区别

前言

上周上课,老师提出了一个问题,程序设计有面向对象和面向过程两种常用设计理念。请你回答他们各自的目的和各自的有缺点。请举例,进行详细的论述。
我发现我怎么也搞不清楚,按老师的话说就是良莠不齐,如果现在不将面向对象和面向过程搞清楚,那么以后写的代码维护起来相当麻烦,开发成本太大。以后可能就加班改代码。。。。

下面就让我来总结一下面向对象与面向过程各自的目的,各自的优缺点。

面向对象与面向过程的区别

面向对象的关注点是对象。

面向对象:是我们要注重多少人来干事,而不是干多少事。我们要注重谁来干事,而不是怎么干事。

面向过程的关注点是过程。


拿生活中的例子举例,如让某人帮我打杯水。面向过程的设计思路是分析出实现的步骤:1.找到一个人、2.告诉他打水的地点、3.告诉他用那个杯子打水、4、进行打水,5、将水送给我。

面向对象的设计思路是:整个打水可以分为:参与者(受水人、打水人)、打水工具、打水地点、水。

面向对象与面向过程的各自的目的

面向对象和面向过程没有好坏之分。

面向对象目的是通过建立对象使构成的程序,可维护,可扩充,可复用。所以面向对象主要侧重于

面向过程的目的:运用逻辑分析出解决问题所需要的步骤,然后把这些步骤一步一步实现。主要侧重于小型程序。

面向对象与面向过程的有缺点

面向过程

优点:由于不涉及到类的调用,以及类的实例化。效率高、开销小。

缺点:不宜维护、不宜复用、不宜扩展

面向对象

优点:易扩展、易维护、易复用

缺点:转变看问题的角度需要训练,专注的不是细节而是参与者和表现者、开销大。

那么像linux这样的大型系统,为什么要用C语言这样的面向过程的语言去开发呢?面向过程的语言,它最大的优势就是他的实时性和效率高。而linux是操作系统,操作系统它要求尽可能快的响应用户要求,同时减少资源的占用。所以尽管面向过程复用性不好,维护性不好,扩展性不好,单依旧必须选择面向过程的语言。因为我们第一要求施响应速度开,占用资源少。现在linux基本上不用C语言了,基本上用的是C++(面向对象语言)开发,因为使用C语言开发成本太高了,另一方面的原因也是由于目前技术的进步。


目录
相关文章
|
7月前
|
程序员
如何理解面向过程和面向对象?
有人说:“如果上帝是程序员,他怎么创造世界上的所有动物。”,理解这个问题就理解了面向对像。
|
1月前
面向对象编程的理解,面向过程和面向对象有什么区别
面向对象编程的理解,面向过程和面向对象有什么区别
15 0
|
6月前
面向对象和面向过程的区别
面向对象和面向过程的区别
|
9月前
你真的知道面向对象与面向过程的区别吗?
你真的知道面向对象与面向过程的区别吗?
61 0
|
9月前
面向过程和面向对象区别
面向过程和面向对象区别
77 0
|
9月前
面向过程与面向对象的区别与联系
面向过程与面向对象的区别与联系
|
9月前
面向对象概念
1. Coad和Yourdon给出了一个定义:面向对象=对象+类+继承+通信 2. 如果一个软件系统使用这样4个概念设计和实现,则我们认为这个软件系统是面向对象的 什么是对象(object)
48 0
|
9月前
|
C++
C++面向对象的概念和特点
C++面向对象的概念和特点
|
9月前
|
Java C++
面向过程、基于对象、面向对象、分析
面向过程、基于对象、面向对象、分析
45 0
面向过程、基于对象、面向对象、分析
|
9月前
|
存储 设计模式 算法
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】
复习`C++核心语法`,且适当进行汇编探索底层实现原理,进一步夯实基础,为以后的`底层开发`、`音视频开发`、`跨平台开发`、`算法`等方向的进一步学习埋下伏笔。
03-📝C++核心语法|面向对象1【 C++编程规范、类和对象、面向对象程序设计案例、对象的构造和析构、C++面向对象模型初探】