自顶向下,逐步求精
由于软件导论课程的安排,我们已经学到了算法结构的问题,所以今天我给大家介绍一下Top-down design。
高亮宗旨!重点敲黑板:
自顶向下,逐步求精
何为自顶向下:
- 顶,即为最顶层的big project。
- 下,即为下层的各个子程序。
- 自顶向下,即把一个大的任务分解为各个小任务,各个小任务又分解成各个小小任务,最终将小小任务的实现方式敲出来。再一个个求精。便能完美的完成这个任务
Markdown及扩展
A top-down approach (also known as stepwise design and in some cases used as a synonym of decomposition) is essentially the breaking down of a system to gain insight into its compositional sub-systems in a reverse engineering fashion. —— [ 维基百科 ]
举个例子
毕业聚餐点菜:
很明显:点菜就是你的big project,我们要将其分解成各个小任务从而求得实现。
1. 了解班级人数
2. 了解少数名族同学的口味禁忌
3. 了解各位同学的消费能力
4. 与商家协商求得经济合理的订单
当你完成了这些个小任务,点菜这个大project就顺利完成了。当然,这4个小任务还可以继续细分。但恕笔者愚钝,只能想到这里了
在程序设计上的应用
这一点便是重点了。事实上“自顶向下,逐步求精”这个理念就是在计算机领域的理念。简单来说就是,在我们平常面对一个大题目无从下手的时候,不如先从最表面入手,确定我们要完成的大任务。然后凭借自己的经验,将大任务分解成几个小任务。最直接的便是分解成几个小函数,然后一个个写完最后再拼凑在一起。