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