我有一个大对象,在我做一些事情之前,我需要检查多个条件。我有一个很大的功能。这是不可读的,我想把它分解为更小的函数,以使我的代码更清晰。正确的方法来拆分功能
该功能正在检查条件,如果某件事情不正确,则停止并返回问题(属于enum
类型)。
它看起来像这样:
AnswerEnum CheckEverything(Bigobj o)
{
// some calculation
if (...)
return AnswerEnum.Error1;
// some more calculation
if (...)
return AnswerEnum.Error2;
...
return AnswerEnum.OK;
}
现在,我想借此计算在更小的功能,我可以做的是以下几点:
AnswerEnum CheckEverything(Bigobj o)
{
AnswerEnum ret;
ret=CheckFirstThing(o);
if (ret!=AnswerEnum.OK)
return ret;
ret=CheckSecondThing(o);
if (ret!=AnswerEnum.OK)
return ret;
...
return AnswerEnum.OK;
}
此解决方案包含
if (ret!=AnswerEnum.OK)
return ret;
多次,我不喜欢它。 我想尽量减少return
声明的数量和代码的任何重复部分。在这种情况下我怎么能做到这一点?
转到http://codereview.stackexchange.com –