我有一個大對象,在我做一些事情之前,我需要檢查多個條件。我有一個很大的功能。這是不可讀的,我想把它分解爲更小的函數,以使我的代碼更清晰。正確的方法來拆分功能
該功能正在檢查條件,如果某件事情不正確,則停止並返回問題(屬於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 –