面向过程:站在程序员的角度,按照“自顶而下,逐步求精”的模块化思想去解决问题,适合解决小规模的问题,在解决问题中,注意的是解决问题的每一个步骤和过程。
面向对象:按照“由下而上”的思想,站在用户的角度先考虑系统由什么物体(对象)组成,对象之间如何交互的,它比较适合大规模的问题,注重的是在问题中涉及到的对象,以及对象之间的关系。
| 核心思想 | 缺点 | 算法 |
面向编程 | 自顶向下,逐步求精,也就是把功能分解 | 一旦数据结构发生修改,就必须要修改操作代码
可重用性差
可维护性差,维护成本高 | 程序=数据结构+算法 |
|
| 相对优点 |
|
面向对象 | 分解数据
数据、操作数据是一个整体 | 数据修改只涉及对该数据的操作(封装)
可重用性强(继承)
可维护性好,维护成本低 | 程序=数据结构+消息 |