美文网首页
面向对象和面向过程对比

面向对象和面向过程对比

作者: 七叶笔记 | 来源:发表于2019-10-13 07:08 被阅读0次

    概念


    面向对象和面向过程是去解决问题的两种不同思想

    什么是面向过程?

    面向过程 可以理解为一种算法,你是怎么一步一步去实现或者完成你的目的。
    可以举个例子

    什么是面向对象?

    面向对象 是面向过程的进化(物竞天择,适者生存),以前(面向过程)解决问题要一步一步来,中间需求或者影响条件改变之后,对于过程中各个影响点都要去调整,麻烦。随着时间推移,进化出面向对象的概念,抽象出某种统一的行为转化为对象

    例如:吃饭
    过程怎么处理?
    买菜 洗菜 做饭 吃饭 洗碗

    抽象出来怎么办?
    厨师:买菜 洗菜 做饭
    我:吃饭
    厨师:洗碗

    将吃饭抽象出两个对象:厨师 我
    厨师有两个功能
    我有一个功能

    这时候我想吃烤猪怎么办?
    改变厨师做饭的方法

    对比

    共同点
    不同点

    面向过程
    优缺点对比维度:性能 可维护性
    优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、 Linux/Unix等一般采用面向过程开发,性能是最重要的因素。
    缺点:没有面向对象易维护、易复用、易扩展

    面向对象:
    优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护
    缺点:性能比面向过程低

    面向过程性能一定比面向对象高吗?

    事物无绝对

    面向过程也需要分配内存,计算内存偏移量,Java性能差的主要原因并不是因为它是面向对象语言,而是Java是半编译语言,最终的执行代码并不是可以直接被CPU执行的二进制机械码。

    而面向过程语言大多都是直接编译成机械码在电脑上执行,并且其它一些面向过程的脚本语言性能也并不一定比Java好。

    随着硬件的不断升级,很多性能方面的因素可以忽略

    相关文章

      网友评论

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

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