如何讓Java代碼流暢和結(jié)構(gòu)化

字號:

說明:為了使邏輯更易懂,也為了可維護(hù)性更高,應(yīng)該把代碼按模塊分割,而構(gòu)成模塊的類的方法,原則上只能有一個入口和一個出口。另外,關(guān)于嵌套的深度和模塊的行數(shù),也應(yīng)該控制在一眼就能看清楚的程度上。
    就Java語言來說,考試大提示:有如下的幾點需要在編碼的時候特別留意。
    ① switch的case,default部分原則上必須以break終止
    如果不用break來終止的話,必須代之以編碼規(guī)約中既定的注釋。但是,如果swich或者if/else需要反復(fù)進(jìn)行,就需要重新考慮是不是應(yīng)該使用多態(tài)。
    ② 處理途中只允許返回異常,返回方法中不允許把異常和return混雜在一起。
    處理途中發(fā)生的錯誤,原則上都要使用異常來返回。例如,在對參數(shù)進(jìn)行檢查時發(fā)生異常時,要拋出IllegalArgumentException。在一本程序里,把錯誤一會兒用異常拋出,一會兒又用返回值(返回ERROR等)返回,往往是程序混亂的根源。必須在設(shè)計階段明確方針,避免這種混亂。
    ③ finally中,不要寫return。
    例:
    ① switch中需要考慮的要點
    Int dd = 0;
    Switch(status) {
    case ‘ A’ :
    dd = 9;
    break; //OK:正確,用break終止
    case ‘ B’:
    dd++;
    /* FALL THROUGH */ //OK:有意不使用break文,插入了規(guī)定的注釋
    case ‘ C’:
    dd++; //ERROR:沒有插入注釋,明顯是缺少break的Bug
    default:
    dd = -1;
    break; //OK:default里也沒有忘記break
    }
    ② 用異常處理來返回錯誤
    If (value == null) {
    throw new IllegalArgumentException(); //OK:不使用return,用拋出異常的方式返回錯誤
    }
    ③ 在finally塊中,對返回值有影響的情況
    Int value = 1;   Try{   return value;   } finally{
    value = 4;
    return value; //ERROR:因為finally塊是肯定會被執(zhí)行到的,所以在try里本來想
    //返回1,而最終結(jié)果永遠(yuǎn)是4
    }
    //如果在這里寫return的話,出口就只有一個了。