盡快返回就是如果方法中的條件判斷可以得到結果,則盡快返回該結果。
1. 檢查條件,如果不滿足就立即返回,不執行下面的邏輯。
2. 當包含大量的if else巢狀,**可讀性變差,也容易出現異常。
3. 在重構時, 盡量使簡單判斷優先執行,盡快返回,提高效能。
**重構前
usingsystem.collections.generic;
using
system.linq;
using
lostechies.daysofrefactoring.samplecode.breakmethod.after;
using customer =lostechies.daysofrefactoring.breakresponsibilities.after.customer;
namespace
lostechies.daysofrefactoring.samplecode.returnasap.before
public
decimal calculateorder(customer customer, ienumerableproducts, decimal
discounts)
}return
ordertotal;}}
}
**重構後
usingsystem.collections.generic;
using
system.linq;
using
lostechies.daysofrefactoring.samplecode.breakmethod.after;
using customer =lostechies.daysofrefactoring.breakresponsibilities.after.customer;
namespace
lostechies.daysofrefactoring.samplecode.returnasap.after
public
decimal calculateorder(customer customer, ienumerableproducts, decimal
discounts)
}}
**重構後, 可讀性提高,邏輯清晰。
重構第30天 盡快返回 Return ASAP
理解 把條件語句中複雜的判斷用盡快返回來簡化。詳解 如首先宣告的是前面講的 分解複雜判斷 簡單的來說,當你的 中有很深的巢狀條件時,花括號就會在 中形成乙個長長的箭頭。我們經常在不同的 中看到這種情況,並且這種情況也會擾亂 的可讀性。下 所示,hasaccess方法裡面包含一些巢狀條件,如果再加一些...
31 天重構學習筆記30 盡快返回
摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年 10月份,由於當時沒有訂閱 sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都 在使用,只是我們沒有專...
31 天重構學習筆記30 盡快返回
摘要 由於最近在做重構的專案,所以對重構又重新進行了一遍學習和整理,對31天重構最早接觸是在2009年 10月份,由於當時沒有訂閱 sean chambers的blog,所以是在國外的社群上閒逛的時候鏈結過去的。記得當時一口氣看完了整個系列並沒有多少感覺,因為這些基本上專案都 在使用,只是我們沒有專...