函数中的代码尽量处于同一逻辑层次

在写新代码或者重构旧代码时我们可能会遇到调整函数结构的问题,我们来看下面这个例子

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杯豆浆
	吃午饭();
	吃晚饭();
}

看过《西游降魔转》的话,不知道对里面的天残脚还有没有印象,对,就是看起来不协调。
重构代码,需要我们对代码逻辑要非常清楚,要多思考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值