美文网首页我爱编程
面向过程和面向对象

面向过程和面向对象

作者: ContentMy | 来源:发表于2018-04-13 15:58 被阅读0次

百度百科对“面向过程”的解释是这样的:

“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

百度百科对“面向对象”的解释是这样的:

面向对象”(Object Oriented)是一种以事物为中心的编程思想。
内心OS:其实百度的解释还有很多很多,这是简单的一句话,细看的话请点击链接自行观看。

从知乎了解的到的两者是这样的:

面向对象是纪传体,面向过程是编年体。
详见:“面向对象和面向过程分别是什么?



当然这里面有一些趣味性,但也不失为其个人理解的回答,那么我的理解是什么呢?

一开始我的理解是这样的:

比如说,我们有一个这样的需求,要坐火车去西藏,这个时候面向对象和面向过程都可以实现这个需求。但是当我们突然改变了需求,我们想自驾游去西藏了,这个时候面向对象写一个交通工具的类,把汽车对象放进去就ok,但是面向过程是需要重新写吗?当需求越复杂的时候,面向过程去改动的时候会越麻烦,面向对象的封装,继承,多态的优势也就越体现出来了。

然后询问大佬后得出的结论是这样的:

就比如我去修路,修路需要3大步:
先用挖掘机挖坑,然后用卡车把料运过来,最后用压路机压平。
面向过程:
就我一个人(一整块逻辑,在C语言中表现为一个 修路.c + 修路.h 文件),首先我需要开挖掘机挖坑(调用函数 开挖机()),然后开卡车 (调用 开卡车()),最后开压路机(xxx),如果一不小心把挖掘机开翻了,我就得去修挖掘机(直接修改函数逻辑),或者开卡车开炸了,得去买一个,至始至终都得是我在干这些事(对整体逻辑的一部分进行修改),但是因为比较直接,所以效率高。如果需要增加修路步骤,需要我去学习新技能,买新的工程车。(对整体逻辑的一部分进行修改)。
面向对象:
我是包工头,手下有好多蓝翔请来的精英,让他们去开各种机器,完成修路,(就类似 android 里一个 activity 是修路用的,里面有好多工程师对象,有开挖机的,开卡车的等等,他们都有自己的挖掘机),然后修路过程变成了,挖机哥.开挖机(),卡车哥.开卡车,如果挖掘机开翻了,可以直接换一个挖机哥继续开(直接修改实现类,增加了可维护性,降低了耦合性),每个工程师就代表一个类型,没有面向过程速度开,因为需要创建类(需要招人),但是逻辑清晰,可维护性高。如果需要增加修路步骤,需要我去直接招人(activity 中加入新类型的对象)。

 那么最后的定义是什么呢?此时我的理解是面向过程是一步步执行,虽然效率会高,但是随着需求的增加,一旦有问题,去亡羊补牢的话不是不可以,只是会耗费太多的人力物力。相对来说,面向对象,一开始要声明对象,去封装一些类,但是它的优势在于大大的降低的代码的耦合度,继承和多态也大大有利于代码的复用。当增加新的需求,修改会更加容易,不是会没有问题,只是相对面向过程来说更加容易些。
 暂时的理解是这样,以后有了更深的、更好的理解再更新

相关文章

  • Java程序员必修内功心法!(内功修炼第二层)

    1,Java 面向对象 1.1类和对象 1.1.1. 面向对象和面向过程的区别 1,面向过程 :面向过程性能比面向...

  • 【面向对象一】从面向过程到面向对象写函数方法的进化

    [目录] 面向过程写函数什么是面向过程?什么是面向对象?【面向过程】和【面向对象】写函数的不同【面向过程】写函数的...

  • Python 面向对象 - 01 基本概念

    目录一、面向过程 和 面向对象 基本概念1.1 面向过程1.2 面向对象二、类和对象2.1 类2.2 对象2.3 ...

  • 2、面向对象

    一、面向对象 定义:面向对象是基于面向过程的。 面向对象与面向过程比较:面向过程:面向过程是以函数为基础,完成各种...

  • 面向对象的三大基本特征和五大设计原则

    1、面向对象概念 1.1、理解面向对象 面向对象是相对面向过程而言; 面向对象和面向过程都是一种思想; 面向过程:...

  • Java基础

    1.面向过程和面向对象区别 1.1面向过程:面向过程性能高于面向对象 1.2面向对象:面向对象易复用,易拓展,易维...

  • Java 面试基础知识(一)

    1.面向对象与面向过程的区别 面向过程:性能比面向对象高,但是维护性、扩展性和复用性没有面向对象好。 面向对象:维...

  • Java 面试基础知识(一)

    1.面向对象与面向过程的区别 面向过程:性能比面向对象高,但是维护性、扩展性和复用性没有面向对象好。 面向对象:维...

  • Java学习day-07:面向对象

    一、面向过程和面向对象 1.面向对象与面向过程的区别: 面向对象具有三大特征;封装,继承,多态;面向对象与面向过程...

  • python--面向对象

    1.面向对象是什么? 总的来说,“面向对象”可以分成“面向”和“对象”,‘面向对象‘’是对“面向过程“”编程的补充...

网友评论

    本文标题:面向过程和面向对象

    本文链接:https://www.haomeiwen.com/subject/lufckftx.html