结构化方法和面向对象方法对比
总结对比表
特性 | 结构化方法 | 面向对象方法 |
---|---|---|
设计核心 | 过程/功能 (添加XX , 计算XX ) | 对象/实体 (Student , Grade ) |
程序组成 | 算法 + 数据结构(两者分离) | 相互作用的对象(数据和行为捆绑) |
关键概念 | 函数、数据结构、流程控制 | 类、对象、封装、继承、多态 |
数据存储 | 全局变量或传递参数 | 对象的属性(内部状态) |
代码复用 | 通过调用函数复用 | 通过继承和组合对象复用 |
核心优势 | 流程清晰,适合简单、线性的任务 | 易于建模复杂系统,易维护、易扩展 |
典型问题 | 数据全局化,难以管理,容易产生副作用 | 设计更复杂,需要前期良好的抽象 |
这个简单的例子清晰地表明:对于任何具有一定复杂度和状态管理的系统,面向对象方法通过“封装”带来的安全性和可维护性优势是压倒性的。它让代码不再是冰冷的指令集合,而是一个由智能对象组成的、更符合我们思维习惯的活生生的系统。