而不是
if (isPrime == 0) {
return false;
} else {
return true;
}
嘗試
return (isPrime != 0);
這是同樣的事情,我會告訴你的重構路徑。與
if (isPrime == 0) {
return false;
} else {
return true;
}
開始相同
if (isPrime != 0) {
return true;
} else {
return false;
}
其可以通過取代來減少,代 'isPrime!= 0' 與函數 'doIsPrime()'
private boolean doIsPrime() {
return isPrime != 0;
}
代在
if (doIsPrime()) {
// guaranteed to be the same as above!
return doIsPrime();
} else {
return doIsPrime();
}
wh ICH可以具有兩個塊還原(如複製的代碼)
if (doIsPrime()) {
}
return doIsPrime();
並且通過圍繞空塊除去if語句進一步減小
return doIsPrime();
現在撤消替代「doIsPrime()」返回「isPrime != 0'
return isPrime != 0;
有沒有必要真的做替代;但是,我發現它更好地展示瞭如果陳述是多餘的推理。
並坦率地說:這沒什麼錯。它描述了你想要表達的內容。但是,想象一下10個條件,例如連續的條件,比你有70行代碼而不是1條。只要你正在測試的條件是簡單的比較,你應該留下簡短的符號。你會習慣像上面的例子一樣快地閱讀它們,甚至在一段時間後讀得更快。 – Peter