在写新代码或者重构旧代码时我们可能会遇到调整函数结构的问题,我们来看下面这个例子
void 吃饭()
{
买1杯豆浆
买2个包子
吃1个包子
喝0.5杯豆浆
吃1个包子
喝0.5杯豆浆
煮1小碗米饭
买2个番茄
买1个鸡蛋
买1块儿姜
买1头蒜
炒1人份番茄炒蛋
吃米饭
买1条鲤鱼
买200g嫩豆腐
...
}
阅读这段代码时会展现很多细节,不利于快速掌握整体逻辑,很明显应该封装子函数,上面这个例子举得很直白,可以很容易整理出同一层次的几个子逻辑:
void 吃早饭();
void 吃午饭();
void 吃晚饭();
void 吃饭()
{
吃早饭();
吃午饭();
吃晚饭();
}
封装出的几个子函数在同一逻辑层次,代码结构更清晰;其他人在看代码时,首先看到的是整体的逻辑,而不是扑面而来的大量细节。
但是在实际工作中,代码逻辑比较复杂,不太容易整理出清晰的子逻辑,可能会重构成下面这样:
void 吃午饭();
void 吃晚饭();
void 吃饭()
{
买1杯豆浆
买2个包子
吃1个包子
喝0.5杯豆浆
吃1个包子
喝0.5杯豆浆
吃午饭();
吃晚饭();
}
看过《西游降魔转》的话,不知道对里面的天残脚还有没有印象,对,就是看起来不协调。
重构代码,需要我们对代码逻辑要非常清楚,要多思考。