面向过程 | 面向对象 | |
---|---|---|
优点 | 性能比面向对象高,适合跟硬件联系很紧密的东西。如单片机就采用的面向过程编程 | 易维护、易复用、易扩展,由于面向对象有封装、继承、多态的特性,可以设计出低耦合的系统,使系统更加灵活,更加易于维护 |
缺点 | 不易维护、不易复用、不易扩展 | 性能比面向过程低 |
面向过程
一、面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
- 总结:按照步骤编程 (函数和变量)
| 【示例】面向过程将编程任务当作完成一件事情,这件事情需要按步骤完成。比如说,煮咖啡这件事:先拿一定量的咖啡豆,然后磨成粉末,再倒入咖啡机,等待几分钟,就煮好了咖啡。这就是面向过程。
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!’)
|
| --- |
<a name="uxXzR"></a>
# 面向对象
一、面向对象是把事务分解成为一个个对象,然后由对象之间分工与合作。
- 总结:将需求分析出一个一个的对象,然后在分析出对象中的属性和方法,最后按照步骤编程(方法和属性)
| 【示例】面向对象将整个编程任务分发给一个或者多个实体,然后给每个实体赋予特定的属性和功能,通过实体之间的相互协作,完成我们这个编程任务。比如我们煮咖啡这件事,我们只需要创造一个机器人实体,然后给机器人赋予以上的功能,然后让机器人帮我们完成煮咖啡的任务```javascript
class Robot{
constructor() {}
cookCoffee= () => {
// ...伪代码
console.log('取咖啡豆');
console.log('磨成粉末');
console.log('煮开水');
console.log('倒入咖啡机');
console.log('finish!');
}
}
var robot1 = new Robot();
// robot1,帮我泡杯咖啡
robot1.cookCoffee();
总结:
面向过程:需要你自己去一步一步的执行
面向函数:也是需要自己去一步一步执行,只是执行的过程已经提前设定好了
面向对象:让机器人去执行 ,因为已经设定好执行步骤,你只需等待结果就好了 |
| —- |
应用场景
- 比较简单的逻辑,使用面向过程,前端更偏向使用面向过程。
- 比较复杂的逻辑,使用面向对象,后端更偏向使用面向对象。