close
Guard Clause是一種程式的風格,通常會至少滿足其中一種以下的行為
1.檢查傳入的參數,如果檢驗不通過就回傳錯誤訊息
2.檢查物件的狀態,如果不符合function使用的物件就
3.簡單快速的處理明顯的邏輯
舉個例子像是以下的程式碼
if(username!=null){
if(password!=null){
System.out.println("do something");
//這邊是要處理的邏輯
}else {
System.out.println("password is null");
}
}else {
System.out.println("username is null");
}
我們可以知道username跟password皆不為null時才會執行程式
這邊我們可以閱讀是因為巢狀的條件還只有兩層,而且有進行縮排,要是越來越多層
或是程式碼一常,我們不見得可以閱讀程式的執行條件是什麼
以這個例子做出Guard Clause的話大概是長這個樣子
if(username!=null && password!=null){
System.out.println("do something");
//這邊是要處理的邏輯
}else if(password==null){
System.out.println("password is null");
}else{
System.out.println("username is null");
}
把要處理的邏輯直接表現出來,這樣是否感覺比較容易明白想要執行的邏輯呢?
我自己覺得還是看每個人習慣,不過這種程式風格就給各位當做參考了
參考資料:http://c2.com/cgi/wiki?GuardClause
全站熱搜