从结构化编程到面向对象编程:编程范式的转变
1. 结构化编程概述
将程序拆分为函数的思想可进一步扩展,把多个函数组合成一个更大的实体,即模块(通常是一个文件)。这一过程的原理与拆分函数类似,都是对执行指令列表的组件进行分组。把程序划分为函数和模块是结构化编程的基石之一。在面向对象编程出现之前的几十年里,结构化编程这一定义略显松散的规范,深刻影响了编程的组织方式。
2. 结构化编程的问题
随着程序规模不断扩大、复杂度持续增加,结构化编程方法开始显现出局限性。在大型项目开发中,常出现项目过于复杂、进度延误、不断增加程序员却导致复杂度进一步上升、成本飙升,最终项目失败的情况。
结构化编程存在两个主要问题:
- 无限制访问全局数据 :在像 C 语言编写的程序中,有局部数据和全局数据之分。局部数据隐藏在函数内部,仅供该函数使用,相对安全。但当多个函数需要访问同一数据时,这些数据就必须设为全局数据。在大型程序里,众多函数和全局数据项会导致函数与数据之间潜在连接数量剧增。这使得程序结构难以理解,修改也变得困难。例如,在库存管理程序中,如果将产品代码的数据类型从短整型改为长整型,所有操作该数据的函数都需要修改。
- 难以模拟现实世界 :结构化编程将数据和函数分离的方式,无法有效模拟现实世界中的对象。现实世界中的对象,如人、汽车等,既有属性(如人的眼睛颜色、工作头衔,汽车的马力、车门数量),又有行为(如人对请求加薪的回应,汽车刹车后停止)。而单独的数据或函数都不能很好地模拟这些对象。
3. 面向对象编程的基本思想
面向对象语言的核心思想
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



