更多来自:http://imcc.blogbus.com
Ÿ 把程序装进箱子:用函数封装程序功能
在完成豪华的工资统计程序之后,我们信心倍增,开始向C++世界的更深远处探索。
现在,可以使用各种数据类型和程序流程控制结构来编写完整的程序了。但是,随着要处理的问题越来越复杂,程序的代码也越来越复杂,主函数也越来越长了。这就像我们将所有东西都堆放到一个仓库中,随着东西越来越多,仓库慢慢就被各种东西堆满了,显得杂乱无章,管理起来非常困难。面对一个杂乱无章的仓库,聪明的仓库管理员提供了一个很好的管理办法:将东西分门别类地装进箱子,然后有序地堆放各个箱子。
这个好方法也可以用到程序设计中,把程序装进箱子,让整个程序结构清晰。
5.1 函数就是一个大箱子
当要处理的问题越来越复杂,程序越来越庞大的时候,如果把这些程序代码都放到主函数中,将使得整个主函数异常臃肿,这样会给程序的维护带来麻烦。同时,要让一个主函数来完成所有的事情,几乎是一个不可能完成的任务。在这种情况下,可以根据“分而治之”的原则,按照功能的不同将大的程序进行模块划分,具有相同功能的划分到同一个模块中,然后分别处理各个模块。函数,则成为模块划分的基本单位,是对一个小型问题处理过程的一种抽象。这就像管理一个仓库,总是将同类的东西放到同一个箱子中,然后通过管理这些箱子来管理整个仓库。在具体的开发实践中,我们先将相对独立的、经常使用的功能抽象为函数,然后通过这些函数的组合来完成一个比较大的功能。举一个简单的例子:看书看得肚子饿了,我们要泡方便面吃。这其实是一个很复杂的过程,因为这一过程中我们先要洗锅,然后烧水,水烧开后再泡面,吃完面后还要洗碗。如果把整个过程描述在主函数中,那么主函数会非常复杂,结构混乱。这时就可以使用函数来封装整个过程中的一些小步骤,让整个主函数简化为对这些函数的调用,如图5-1所示。
图5-1 将程序封装到箱子,分而治之