Java面向对象和面向过程的区别
in Java with 0 comment

Java面向对象和面向过程的区别

in Java with 0 comment

理论

  1. 面向过程:

    • 如果有一个软件,采用面向过程开发,在这个过程当中,没有任何独立体的概念。将因为所以关联在一起把整个业务逻辑实现。这种方式的开发,我们称为面向过程。面向过程开发,关注的是因果关系的一个实现,没有独立体的概念,面向过程统是以因果关系为核心。一个小因果关系构成一个小的步骤,小的步骤之间因为因果关系构成一个小的模块。模块之间又因为因果关系构成一个系统。只要有一个因果关系发生了断裂,整个软件就废了。采用面向过程开发的系统,都应该关注的是过程

    • 优点

      • 对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本低。
    • 缺点

      • 采用面向过程开发的开发方式很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间的耦合度非常高,只要其中一环出问题,整个系统受到影响,导致最终的软件扩展力差。另外,由于没有独立体的概念,所以无法达到组件复用。
  2. 面向对象:

    • 面向对象的关注点在对象上,面向对象就相当于,我不关心这个对象底层到底是怎么实现的,我只关心这个对象能给我带来什么。你给我个打火机,我不关心这个打火机是怎么实现的,我只要知道这个打火机按这个钮就能打火。

    • 关注的是一个独立的组件、独立的个体,而这个独立的个体主要分析的是你这个独立的个体到底可以给我带来什么、做什么。

    • 像现实世界,分割成不同的单元,每个单元都是独立的对象,然后让对象之间协作起来形成一个系统

    • 优点

      • 独立体耦合度低,扩展力强。更容易解决现实世界当中更复杂的业务逻辑。组件复用性强
    • 缺点

      • 前期投入的成本较高,需要进行独立体的抽取,大量的系统设计

例子

想象一个人抽烟的场景,想到了有个哥们,拿着一根香烟,然后又想到他手里拿了个打火机。大脑里想象的是什么,想象到了几个独立个体,想象到了人,想象到了抽烟场合,想象到了打火机想象到了香烟。把这几个对象放到这,组合起来这个场景就形成了

面向过程主要关注的是实现的具体过程,因果关系。

面向对象:主要关注的是对象「独立的个体」,能完成哪些功能。