面向对象和面向过程

  • 面向过程 :面向过程是按照功能来分析系统需求,主要原则:自顶向下,逐步求精,模块化等;面向过程设计中最小的程序执行单元是函数,每个函数都负责完成一个功能,用以接受一些输入数据,函数对这些输入数据进行处理,处理结束后输出一些数据。整个软件系统由一个个函数组成,其中作为程序入口的函数被称为主函数,主函数依次调用其他普通函数,普通函数之间依次调用,从而完成整个系统的功能
  • 面向对象 :以现实世界中的事物(即对象)为中心认识问题,并根据这些事物的本质特点,把它们抽象为系统中的类,作为系统的基本构成单元。面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护和复用。
  • 区别:
  • 面向过程性能比面向对象高。 因为类调用时需要实例化,开销比较大,比较消耗资源,所以当性能是最重要的考量因素的时候,比如单片机、嵌入式开发、Linux/Unix 等一般采用面向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展;面向对象易维护、易复用、易扩展。 因为面向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能比面向过程低。
  • 不过这个并不是根本原因,面向过程也需要分配内存,计算内存偏移量,Java 性能差的主要原因并不是因为它是面向对象语言,而是 Java 是半编译语言,编译生成的字节码(.class)的执行代码并不是可以直接被 CPU 执行的二进制机械码,需要使用JVM进行解释成机器码才能执行,好处就是跨平台,便于移植。就是执行效率付出了一定代价。而面向过程语言大多都是直接编译成机械码在电脑上执行,并且其它一些面向过程的脚本语言性能也并不一定比 Java 好。

posted @ 2020-05-17 14:59  xhc0714  阅读(195)  评论(0)    收藏  举报