1. 分解條件表示式
if (isup(case) || isleft(case))
num = a * b;
else num = a * c;
更改為↓
if (istrue(case))
numberb(a);
else numberc(a);
boolean istrue(case)
int numberb(a)
int numberc(a)
2. 合併條件表示式
double disabukutyamount()
更改為↓
double disablilityamount()
boolean isnoteligiblefordisability()
3. 合併重複的條件片段
有時候你可能會在if else 語句中寫重複的語句,這時候你需要將重複的語句抽出來。
if (isspecialdeal()) else
更改為↓
if (isspecialdeal())
total = price * 0.95;
else
total = price * 0.98;
send();
4.移除控制標記
5. 以衛語句取代巢狀表示式
加入return語句去掉else語句。
if (a > 0) result = a + b;
else
}return result;
更改為↓
if (a > 0) return a + b;
if (b > 0) return a + c;
return a + d;
6. 以多型取代switch語句
將條件表示式的每個分支放入乙個子類的覆寫函式中,將原始函式宣告為抽象函式
int getarea()
更改為↓
class shap ;
}class circle extends shap
}class rect extends shap
}
7.引入null物件
需要檢查物件是否為空,將null值替換為null物件
if(customer == null)else
做法:為源類建立乙個子類,使其行為就像是源類的null版本,在源類和null子類中都加上isnull()函式,牽著的isnull返回false,後者的返回true
建立乙個nullable介面,把isnull函式放入,源類實現。
8.引入斷言
某一段**需要對程式狀態做出某種假設,以斷言明確表現這種假設。
double getexpenselimit()
double getexpenselimit()
簡化條件表示式(二)
6,replace conditional with polymorphism 以多型取代條件表示式 現象 你手上有個條件表示式,它根據物件型別的不同而選擇不同的行為。要點 將這個條件表示式的每個分支放進乙個子類內的賦寫函式中,然後將原始函式宣告為抽象函式。7,introduce null obje...
條件表示式簡化寫法(重要)
補充 and符號作為普通運算子的意思是與,當條件同時為true時,返回才true,用在if語句中的時候,當兩個條件同時滿足時,才執行if語句中的 塊。a 5 b 0 if a and b print a else print b 先進行判斷,當a和b必須同時為true時,才輸出a,否則輸出b 放在p...
pgsql條件表示式
postgresql 8.1 中文文件 prev fast backward chapter 9.函式和操作符 fast forward next 本節描述在 postgresql 裡可以用的sql相容的條件表示式。sqlcase 表示式是一種通用的條件表示式,類似於其它語言中的 if else 語...