面向过程:结构化程序设计,我们在解决问题中,注重的是解决问题的每个步骤和过程。
面向对象(oop):注重的是在问题中涉及的那些对象,以及对象之间有哪些关系。
面向对象的优势:尽量把修改控制在一个小的范围。能轻松的应对修改。
核心思想 |
缺点 |
算法 |
|
面向过程 |
自顶而下,逐步分解,也就是把功能分解。 设计数据结构 编写基础代码,基于数据结构操作 |
一旦数据结构发生修改,必须就要修改操作的代码 可重用性差 可维护性差,维护的成本高 |
程序=数据结构+算法 |
面向对象 |
分解数据 数据和操作数据是一个整体 |
相对的优点 |
程序=对象+消息 |
数据修改,只涉及这对该数据的操作(封装) 可复用性好(继承) 可维护性好,维护的成本低 |