“Top-down”---至顶向下的设计方法

来源:互联网 发布:智商 知乎 编辑:程序博客网 时间:2024/05/22 06:21

“Top-down”—至顶向下的设计方法

曾经看到有人说,人活着的过程就是在不断地解决问题的过程。
我觉得这句话很有道理,

从年幼时的牙牙学语,到学习阶段的各种作业,当然还有各种编程难题,都是我们要面对的问题。


今天要分享一种解决问题的方法—-“top-down”方法。
这是一种“至顶向下,分布求精”的解决问题的思路。

这里写图片描述

通常来说我们需要解决的问题直观上是一个“大问题”,“庞然大物”,面对它时你不知该从何入手,你会为问题面的广泛而感到无能为力。

这时候,我们就应该用top-down方法了。

首先,我们先对这个问题进行分解。
这里写图片描述

好比叫你描述一头大象长什么样。你当然不会说这是一个很大的动物。我们会从不同部位来看大象,比如鼻子,尾巴。
然后我们还可以再具体化问题,比如尾巴,我们可以具体到尾巴的长短,对长短具体到数据。
这样我们就得到大象–尾巴–长短–数据,这样一条至顶向下的“瀑布”模式。
以洗衣机控制程序为例。
洗衣机程序的目的将衣服洗干净,我们就可以分解这个洗衣过程。
洗衣–放衣服–注水–浸泡–排水–脱水
其中注水–浸泡–排水–脱水就是洗衣机程序所要做的了。
我们用伪代码再细分一下。

注水:
open上水开关
While 水的高度足够了
close上水开关

浸泡:
电动机开始转动
While 经过x秒
{ 电动机转动方向反向
IF 浸泡时间超过y秒
停止循环,电动机停止转动
}

排水:
open排水口
IF水位为0
Close 排水口

脱水:
Open 排水口
电动机开始快速转动
IF 脱水时间超y秒
电动机以止转动,关闭排水口,发出提示音。

可以看到程序又被细分为了打开排水口之类更具体的操

总之,当我们将问题逐步地分解,至顶向下,我们最终就会得到最基本最清晰的部分。这样问题就容易解决得多了.
这里写图片描述

原创粉丝点击