一、 面向过程:关注点在实现功能的步骤上 (PO:Procedure Oriented
- 面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了
如:要完成开汽车功能 — 1.启动函数;2.踩离合函数; 3.挂挡函数; 4.松离合函数; 5.踩油门函数 — 汽车运行
- 对于简单的流程是适合使用面向过程的方式进行的。复杂的流程不适合使用面向过程的开发方式(面向过程按流程进行,一个环节出问题会导致最终结果的问题,耦合度高)
二、面向对象:关注点在实现功能需要哪些对象的参与(OO:Object Oriented)
- 面向对象就是分析出解决这个问题都需要哪些对象的参加,然后让对象与对象之间协作起来形成一个系统。
如:要完成开汽车功能:首先分析开汽车需要哪些对象参与 —> 汽车对象和司机对象。其次分析对象间的关系,抽象为函数(方法) —> 司机对象驾驶汽车对象 —> 提取出驾驶方法
- 面向对象的开发方式耦合度低,扩展能力强。
例如生产一台电脑:
面向过程:不会分CPU、内存和硬盘等,它会按照电脑的工作流程一次成型。
面向对象:CPU分为一个对象,内存条分为一个对象,硬盘分为一个对象,如果硬盘坏了,后期很容易更换,这就是扩展性。
总结
- 面向对象和面向过程的关注点不同,面向过程关注点在实现功能的步骤上;面向对象关注点在实现功能需要哪些对象的参与。
- 面向过程扩展力较差,耦合度高
- 面向对象扩展力叫强,耦合度低