面向过程 面向对象
优点 性能比面向对象高,适合跟硬件联系很紧密的东西。如单片机就采用的面向过程编程 易维护、易复用、易扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护
缺点 不易维护、不易复用、不易扩展 性能比面向过程低

面向过程

一、面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。

  • 总结:按照步骤编程 (函数和变量) | 【示例】面向过程将编程任务当作完成一件事情,这件事情需要按步骤完成。比如说,煮咖啡这件事:先拿一定量的咖啡豆,然后磨成粉末,再倒入咖啡机,等待几分钟,就煮好了咖啡。这就是面向过程。javascript console.log('取咖啡豆'); console.log('磨成粉末'); console.log('煮开水'); console.log('倒入咖啡机'); console.log('finish!'); | | —- |

面向函数

| 【示例】面向函数将整个编程任务分成N件事情,每件事情作为一个函数(可以参考hooks,hooks就是一种面向函数的编程,hooks中每个函数最好只完成一件事,分的越细越好)。然后按照一定的步骤执行。```javascript function toPowder() { console.log(‘磨成粉末’); }

function takeCoffeeBean() { console.log(‘取咖啡豆’); }

function boiledWater)() { console.log(‘煮开水’); }

function pourIntoCoffeeMachine() { console.log(‘倒入咖啡机’); }

takeCoffeeBean(); toPowder(); boildWater(); poutIntoCoffeeMachine(); console.log(‘Finished!’)

  1. |
  2. | --- |
  3. <a name="uxXzR"></a>
  4. # 面向对象
  5. 一、面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。
  6. - 总结:将需求分析出一个一个的对象,然后在分析出对象中的属性和方法,最后按照步骤编程(方法和属性)
  7. | 【示例】面向对象将整个编程任务分发给一个或者多个实体,然后给每个实体赋予特定的属性和功能,通过实体之间的相互协作,完成我们这个编程任务。比如我们煮咖啡这件事,我们只需要创造一个机器人实体,然后给机器人赋予以上的功能,然后让机器人帮我们完成煮咖啡的任务```javascript
  8. class Robot{
  9. constructor() {}
  10. cookCoffee= () => {
  11. // ...伪代码
  12. console.log('取咖啡豆');
  13. console.log('磨成粉末');
  14. console.log('煮开水');
  15. console.log('倒入咖啡机');
  16. console.log('finish!');
  17. }
  18. }
  19. var robot1 = new Robot();
  20. // robot1,帮我泡杯咖啡
  21. robot1.cookCoffee();

总结:
面向过程:需要你自己去一步一步的执行
面向函数:也是需要自己去一步一步执行,只是执行的过程已经提前设定好了
面向对象:让机器人去执行 ,因为已经设定好执行步骤,你只需等待结果就好了 | | —- |

应用场景

  • 比较简单的逻辑,使用面向过程,前端更偏向使用面向过程。
  • 比较复杂的逻辑,使用面向对象,后端更偏向使用面向对象。