6.8 姑且相信

遵循执行流程是阅读程序的方式之一,但这种方式很快就会让你不堪重负。另一种方式是姑且相信(leap of faith):遇到方法调用时,不沿执行流程前行,而假设被调用的方法能够正确地工作并返回合适的值。

事实上,你在用 Java 库中的方法时,就践行了姑且相信的理念:调用 Math.cosSystem.out.println 时,你并不检查这些方法的实现,而是假定它们能够正确地工作。

对于自己编写的方法,你也应该采取这种做法。例如,我们在 6.5 节中编写了一个名为 isSingleDigit 的方法,用来判断一个数字是否在 0~9。通过测试和检查代码确定这个方法正确后,我们就可在使用时免去重复查看实现。

递归方法也应如此。遇到递归调用时,应假定递归调用可以正确工作,而不沿执行流程前行。例如,“如果能计算出 n-1 的阶乘,就能计算出 n 的阶乘,这样对吗?”没错,只需再乘以 n 即可。

当然,假定未编写好的方法能够正确地运行让人觉得很别扭,这正是我们称之为“姑且相信”的原因所在!