1 extract method? 提煉方法 (110)
? ? 將代碼放進一個獨立函數(shù)中滚躯,并讓函數(shù)名稱解釋該函數(shù)的用途
2 pull up field? 字段上移 (332)
? ? 兩個子類擁有相同的字段,將該字段移動到超類车猬。
3 extract class? ? 提煉類(149)
? ? 某個類做了應有兩個類做的事,建立一個新類乙墙,將相關字段和函數(shù)從舊類搬到心類宁舰。
4 move method? 搬移函數(shù)
? ? 程序中,有個函數(shù)與其所駐類之外的另一個類進行更過交流额衙,調用后者,或被后者調用怕吴,在該函數(shù)最常引用的類中建立一個新函數(shù)窍侧,將舊函數(shù)變成一個單純的委托函數(shù),或是將舊函數(shù)完全移除转绷。
5 encapsulate field 封裝字段
? ? 將其聲明為private伟件,并提供相應的訪問函數(shù)。安全問題议经,如果不封裝其他地方修改對象中的屬性斧账,該對象的使用者并不知情。
6 move?field 搬移字段
? ?與4相同意思煞肾。
7 duplicated code 重復代碼 (76)
8 form template method? 塑造模板函數(shù)? ? (345)
? ? 你有一些子類咧织,其中相應的某些函數(shù),以相同的順序執(zhí)行類似的操作籍救,但各個操作的細節(jié)上有所不同习绢。
? ? 將這些操作分別放進獨立函數(shù)中,并保持他們都有相同的簽名蝙昙。于是原函數(shù)也變得相同了闪萄,將原函數(shù)上移到超類。
? ? 調用的時候調用超類中的原函數(shù)耸黑,通過多態(tài)指定調用的子類桃煎。
? ? 設計模式中的Template method 注重順序篮幢。(我現(xiàn)在做的項目中edi導出報文使用的就是模板方法模式)
9 substitute Algorithm? 替換算法 (139)
? ? 將函數(shù)本體替換為另一個算法(注意if判斷固定幾個值時大刊,可以把固定的幾個值放入集合中 139)
10 replace temp with query? 以查詢取代臨時變量? (120)
? ? 你的程序以一個臨時變量保存某一表達式的運算結果,將這個表達式提煉到一個獨立函數(shù),將這個臨時變量的所有引用點替換為對新函數(shù)的調用缺菌,此后葫辐,新函數(shù)就可以被其他函數(shù)調用。
11 split temporary variable 分解臨時變量
? ? 你的程序某個臨時變量被幅值超過一次伴郁,他即不是循環(huán)變量耿战,也不被用于收集計算結果,針對每一次賦值焊傅,創(chuàng)造一個對立的剂陡,對應的臨時變量(final)
12 Intriduce paramter object 引入?yún)?shù)對象( 295)
? ? 某些參數(shù)總是很自然的同時出現(xiàn),以一個對象取代這些參數(shù)狐胎。(如startDate鸭栖,endDate)
13 preserve whole object 保持對象完整 (288)
? ? 你從某個對象取出若干值,將他們作為某一次函數(shù)調用時的參數(shù)握巢,改為傳遞整個對象晕鹊。
14 replace method with method object 以函數(shù)對象取代函數(shù) (135)
? ? 你有一個大型函數(shù),其中對局部變量的使用使你無法采用提煉函數(shù)暴浦,將這個函數(shù)放進一個單獨對象中溅话,如此以來局部變量就變成了對象中的一個字段,然后你可以在同一個對象中將大型函數(shù)分解成多個小型函數(shù)歌焦。
15 decompose conditional 分解條件表達式 (238)
? ? 有一個復雜的條件表達式語句飞几,從 if then else 三個段落中分別提煉獨立函數(shù)。(每一個等號都有其特定意義独撇,通過函數(shù)名稱標注)
16 extract interfact 提煉接口 (341)
? ? 若干客戶使用類接口中的同一子集循狰,或者兩個類的接口有部門相同,將相同的子集提煉到一個獨立接口中券勺。(接口彌補了繼承绪钥,通用也可以通過繼承的方式理解接口類與實現(xiàn)類)
17 Long parameter list 過長參數(shù)列
? ? 太長參數(shù)類導致難以理解。太多參數(shù)會造成前后不一致关炼,不易使用程腹,而且一旦你需要更多數(shù)據(jù),舊不得不修改他儒拂。
18 inline class? 將類內聯(lián)化? (154)
? ? 某各類沒有做太多事情寸潦,將這個類所有特性搬移到另一個類中,然后移除原類社痛。與提煉類相反见转。