一 Decompose Conditional (分解條件表達式)
如果有一個複雜的條件(if-then-else)語句。從 if、then、else 三個段落中分別提煉出獨立函數。
二 Consolidate Conditional Expression (合併條件表達式)
如果有一系列條件測試,都得到相同的結果。將這些條件測試合併爲一個條件表達式,並將這個條件表達式提煉成爲一個獨立函數。
三 Consolidate Duplicate Conditional Fragments(合併重複的條件片段)
如果條件表達式的每一個分支都有着相同的一段代碼。將這段重複代碼搬移到條件表達式之外。
四 Remove Control Flag (移除控制標記)
在一系列布爾表達式中,某個變量帶有”控制標記“的作用。以 break 語句或者 return 語句取代控制標記。
五 Replace Nested Conditional with Guard Clauses (以衛語句取代嵌套條件表達式)
函數中的條件邏輯使人難以看清正常的執行路徑。使用衛語句表現所有特殊情況。
六 Replace Conditional with Polymorphism (以多態取代條件表達式)
手上有一個條件表達式,它根據對象類型的不同而選擇不同的行爲。將這個條件表達式的每個分支放進一個子類內的覆寫函數中,然後將原始函數聲明爲抽象函數。
七 Introduce Null Object (引入 Null 對象)
如果需要再三檢查對象是否爲 null。將 null 值替換爲 null 對象。
八 Introduce Assertion (引入斷言)
某一段代碼需要對程序狀態做出某種假設。以斷言明確表現這種假設。