原則二:不使用else關鍵字

來源:互聯網
上載者:User

else關鍵字多了以後,當增加新需求時,很容易令人不由自主地去增加新的if...else子句,而不是去重構代碼。而且,這種條件判斷較多的地方,很容易出現代碼重複的現象。

例一:

應用原則之前:

public static void endMe() {
    if (status == DONE) {
         doSomething();
    } else {
        <other code>
    }
}

應用原則之後:

public static void endMe() {
  
if (status == DONE) {
      
doSomething();
      
return;
  
}
  
<other code>
}

else少的話,還可以讓代碼更易讀。

例二:

應用原則之前:

public static Node head() {
    if (isAdvancing()) { return first; }
    else { return last; }
}

應用原則之後:

public static Node head() {
    return isAdvancing() ? first : last;
}

如果是代碼中是需要根據不同的狀態來進行不同處理的話,設計模式中的策略模式恰好是解決這類代碼重複的好方法。

當然,根據代碼中條件子句的不同目的,可以有多種方法來避免使用else。不妨做一下練習,看看能總結出多少種方法來。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.