| 壞味道(英文) | 壞味道(中文) | 頁碼 | 常用重構 |
|---|---|---|---|
| Alermative Classes with Different Interfaces | 異曲同工的類 | 83 | 改變函式宣告(124) 搬移函式(198) 提煉函式(375) |
| Comments | 注釋 | 84 | 提煉函式(106) 改變函式宣告(124) 引入斷言(302) |
| Data Class | 純資料類 | 83 | 封裝記錄(162) 移除設值韓素(331) 搬移函式(198) 提煉函式(106) 拆分階段(154) |
| Data Clumps | 資料泥團 | 78 | 提煉類(182) 引入引數物件(140) 保持物件完整(319) |
| Divergent Change | 發散式變化 | 76 | 拆分階段(154) 搬移函式(198) 提煉函式(106) 提煉類(182) |
| Duplicated Code | 重復代碼 | 72 | 提煉函式(106) 移動陳述句(223) 函式上移(350) |
| Feature Envy | 依戀情結 | 77 | 搬移函式(198) 提煉函式(106) |
| Global Data | 全域資料 | 74 | 封裝變數(132) |
| Insider Trading | 內幕交易 | 82 | 搬移函式(198) 搬移欄位(207) 隱藏委托關系(189) 以委托取代子類(381) 以委托取代超類(399) |
| Large Class | 過大的類 | 82 | 提取類(182) 提煉超類(375) 以子類取代型別碼(362) |
| Lazy Element | 冗贅的元素 | 80 | 行內函式(115) 行內類(186) 折疊繼承體系(380) |
| Long Function | 過長函式 | 73 | 提煉函式(106) 以查詢取代臨時變數(178) 引入引數物件(140) 保持物件完整(319) 以命令取代函式(337) 分解條件運算式(260) 以多型取代條件運算式(272) 拆分回圈(227) |
| Long Parameter List | 過長引數列 | 74 | 以查詢取代臨時變數(178) 保持物件完整(319) 引入引數物件(140) 移除標記引數(314) 函陣列合成類(144) |
| Loops | 回圈陳述句 | 79 | 以管道取代回圈(231) |
| Message Chains | 過長的訊息鏈 | 81 | 隱藏委托關系(189) 提煉函式(106) 搬移函式(198) |
| Middie Man | 中間人 | 81 | 移除中間人(192) 行內函式(115) 以委托取代超類(399) 以委托取代子類(381) |
| Mutable Data | 可變資料 | 75 | 封裝變數(132) 拆分變數(240) 移動陳述句(223) 提煉函式(106) 將查詢函式和修改函式分離(306) 移除設值函式(331) 以查詢取代派生變數(248) 函陣列合成類(144) 函陣列合成變換(149) 將參考物件改為值物件(252) |
| Mysterious Name | 神秘命名 | 72 | 改變函式宣告(124) 函式改名(137) 欄位改名(244) |
| Primitive Obsession | 基本型別偏執 | 78 | 以物件取代基本型別(174) 以子類取代型別碼(362) 以多型取代條件運算式(272) 提煉類(182) 引入引數物件(140) |
| Refunsed Bequest | 被拒絕的遺贈 | 83 | 函式下移(359) 欄位下移(361) 以委托取代子類(381) 以委托取代超類(399) |
| Repeated Switches | 重復的switch | 79 | 以多型取代條件運算式(272) |
| Shotgun Surgery | 霰彈式修改 | 76 | 搬移函式(198) 搬移欄位(207) 函陣列合成類(144) 函陣列合成變換(149) 拆分階段(154) 函式行內(115) 行內類(186) |
| Speculative Generality | 夸夸其談通用性 | 80 | 折疊繼承體系(380) 函式行內(115) 行內類(186) 改變函式宣告(124) 移除死代碼(237) |
| Temporary Field | 臨時欄位 | 80 | 提煉類(182) 搬移函式198 引入特例(192) |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/69776.html
標籤:JavaScript
