1.2 获得更好的解决方案
您最近编写的程序很可能正确地解决了给定的任务。然而,这是最好的解决方案吗?如果没有花费多少时间进行分析和设计,那么这个解决方案或许会遗漏一些所需的功能。如果再次为同样的程序编写代码,毫无疑问将得到一个比最初更好的解决方案。然而,如果花费一点额外的时间分析问题并设计解决方案,或许会得到最好的解决方案。
假定已经获得了3个不同的正确解决方案,您能够判断出某个解决方案优于其他解决方案的特征吗?这些特征是什么?为了创建更好的解决方案应该关注什么?
注释:在分析和设计上所花费的时间不会白花
为适当规模的问题创建一组良好的模块更像是艺术而不是科学,这要求程序员具有一定的经验。某个给定的问题很可能没有"最好"的一组模块,某一组模块(以及模块之间的相互作用)可能只是在某些方面比其他模块组稍好。此外对于大规模问题,多种不同的模块组都可以认为是"最好的",这取决于衡量的尺度。然而,遵循某些原则可以得到"比较好"的设计,这一内容将在后面讲述。