java基礎-衛語句

七印miss發表於2019-01-20

在《阿里巴巴Java開發手冊》中強制規定:避免後續程式碼維護困難,請勿超過3層。如果超過3層的if-else的邏輯判斷程式碼可以使衛語句策略模式狀態模式等來實現。衛語句貌似有點概念,但記不清了,所以在這回顧一下。至於策略模式狀態模式有空也整理整理。

概念

衛語句(guard clauses)就是把複雜的條件表示式拆分成多個條件表示式,比如一個很複雜的表示式,巢狀了好幾層的if-then-else語句,轉換為多個if語句,實現它的邏輯,這多條的if語句就是衛語句。

用法

有時候真正的業務程式碼可能在巢狀多次才執行,其他分支只是簡單報錯返回的情況。對於這種情況,應該單獨檢查報錯返回的分支,當條件為真時立即返回,這樣的單獨檢查就是應用了衛語句。

作用

衛語句可以把我們的視線從多層巢狀的異常處理中解放出來,集中精力處理真正的業務程式碼,且能夠使得程式碼結構更為清晰可讀。

舉慄

使用衛語句之前:

    public void today() {
        if (!isBusy()) {
            if (!isFree()) {
                System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);
            }else{
                System.out.println(“go to travel.”);
            }
        }else{
            System.out.println(“change time.”); return;
        }
        
        return;
    }
複製程式碼

應用衛語句:

    public void today() {
        // 衛語句
        if (isBusy()) {
            System.out.println(“change time.”); 
            return; // 直接返回
        }
        
        // 衛語句
        if (isFree()) {
            System.out.println(“go to travel.”);
            return; // 直接返回
        }
        
        // 關注真正的業務程式碼
        System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”);
        return;
    }
複製程式碼

相關文章