上QQ阅读APP看书,第一时间看更新
1.1.1 面向过程的程序设计
面向过程程序设计思想的核心是功能分解,通常采用自顶向下、逐步求精的方法进行。如将一个大规模的、复杂系统的设计任务按功能逐步分解为若干小规模的、易于控制和处理的子任务,这些子任务都是可以独立编程的子程序模块。每个子程序功能单一,调用方便。比如在C语言中,用函数来实现各子程序模块,最后在main()函数中,通过合理的流程控制,将这些函数有机地组织成完整的程序。
面向过程的程序设计具有直观、条理性强、结构清晰的特点。但是,面向过程的程序设计方法以功能为核心,将数据和对数据的操作分离,功能要求一旦发生改变,就可能需要重新定义数据结构,从而需要重新编写很多代码。因为一旦数据结构发生改变,与之相关的所有操作都需要改变,实现这些操作的函数代码也就随之而变。有的时候,即使功能类似,但由于用于不同的数据结构之上,代码也需要重新编写而无法复用。因此,面向过程的程序设计存在代码可重用性和可维护性差的缺点,不适用于大型程序的开发和维护。
面向过程的程序设计范型是“程序=算法+数据结构”,数据与对数据操作的分离导致软件维护(包括软件的测试、调试和升级)困难。随着软件业的繁荣,面向对象的程序设计方法应运而生,它很好地解决了以上问题。