自顶向下,逐步求精设计方法

什么是自顶向下?
所谓自顶向下,就是对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
这种思想要求程序员对所要完成的任务有非常强的整体把握和掌控,从最大的问题出发,并有逐层分析细化,将一个复杂的问题变为层析分明的一个个能逐步解决的问题,并设计出最终的实用程序。

这种思想和设计方法其实并不只应用于计算机程序的开发和设计,在生活中的其他各个方面都是一种重要的解决问题的思路和方法。
就拿家中的洗衣机为例吧
1)首先,洗衣机要针对不同的衣物和使用要求设计不同的模式,使其适用面更广。
2)其次,洗衣机需要确定洗涤时的水位,以避免浪费水资源,同时又能满足洗涤衣物的水位需求。
3)然后,就是确定洗衣机的工作过程,包括浸泡,漂洗,洗涤,脱水等等。
这样,我们就先确定了洗衣机的大体上的工作流程及设计思路,之后我们在分别对每一点细化,变为更加具体可执行的方案。
1)洗衣机的模式一般有正常(一般情况),快洗,柔洗,浸洗,桶自洁等等,针对不同的模式,我们再分别设计如何运行。
2)洗衣机的水位又具体到如何控制水位和如果断水时如何处理,是多长时间断水后停机,还是将水排出等等。
3)而对洗衣机的四个工作过程,又要分别考虑具体实现,滚筒的转动时间,次数,快慢,注水的次数,然后再向下细化,如何控制时间,洗衣液的投放时机,标准量等等。
由以上洗衣机的实例,我们不难看出自顶向下,逐步求精方法的广泛应用的价值,以及其思想的核心,即“分而治之”。这种方法是一个优秀的程序员的必备基础之一,在生活中也有大量的应用。
当然,这种思想也不是万能的,它也有自己的缺点,也不能适用于某些特定的情况,比如这种方法的设计由于是从上到下的,那么它的各个部分都是为整体而服务的,每个子程序之间的复用性比较受限,在处理较多相似问题时的效率不高。
但总体来说,自顶向下还是一种重要的解决问题的方法,不仅仅是在程序设计这一块,同时也适用于生活中的种种方面,是我们每个人都应该熟练掌握的。
自顶向下,逐步求精设计方法_第1张图片

你可能感兴趣的:(程序设计方法)