重構是什么?
在代碼寫好之后改進它的設計。

重構分類:物理結構、類層次結構、類內部結構。
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Rename | Alt + Shift + R | 可以對任意變量、類、方法、包名、文件夾進行重新命名,並且所有使用到的地方會統一進行修改。 | ||
Move | Alt + Shift + V | 字段 | 把字段移到其他類、把類移到其他包 |
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Change Method Signature | Alt + Shift + C | 修改方法簽名 | 方法 | 對方法進行操作,可以修改方法名、訪問權限、增加刪除方法參數、修改參數順序、添加方法異常 |
Extract Method | Alt + Shift + M | 提取為方法 | 方法 | 任意選中一塊代碼,自動轉換為方法,自動添加參數返回類型。 |
Extract Local Variable | Alt + Shift + L | 提取局部變量 | 字符/數字 | 通常用於表達式,把其中一個抽取為本地的變量,例如3 + 5 抽取為 int i = 3; |
Extract Constant | Ctrl+1 Extract to Constant | 提取常量 | 字符/數字 | 把任意位置的字符串或者數字抽取為一個靜態全局常量。所有使用此字符或者數字的也會相應的被替換為使用常量。 |
Inline | Alt + Shift + I | 內聯 | 方法 | 把調用此方法的地方直接替換成此方法的內容。選中任意方法才可使用此功能。(有All invocations 與 Only the selected invocation兩個選項) |
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Convert Local Variable to Field | Alt + Shift + K | 局部變量轉變為全局變量 | 局部變量 | 把局部變量轉變為全部變量,可以重新修改變量名。 |
Convert Anonymous Class to Nested | 匿名類轉換為嵌套內部類 | 匿名類 | 可以設置類型,內部包含字段類型等。 | |
Move Type to New File | 移動類到新的文件 | 嵌套類 | 以嵌套類創建一個新的類文件 |
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Extract Supperclass | 提取父類 | 提取選中字段或方法放置到其父類中(注意提取方法時,先提取其中使用的字段) | ||
Extract Interface | 提取接口 | 類 | 從一個類的方法生成一個接口(僅當前類的方法會變為接口,其他使用此方法的地方不會) | |
Use Supertype Where Possible | 盡可能使用父類型 | 類 | 把選中引用向上轉型,變成其父類的引用 | |
Push Down | 下推 | 變量、方法 | 把選中方法從父類移到子類中,父類中響應方法變為抽象方法 | |
Pull Up | 上移 | 變量、方法 | 與Push Down相反,把子類的方法上移到父類中 |
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Extract Class | 提取為類 | 字段 | 把所有選中字段提到新類中,可以選擇新建文件也可以使內部類 | |
Introduce Parameter Object | 引入參數對象 | 方法 | 把方法參數抽取為一個類(避免參數在方法內引用被修改異常) |
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Introduce Indirection | 讓其他類可調用當前類某方法 | |||
Introduce Factory | 引用工廠 | 構造函數 | 用方法返回一個對象 | |
Introduce Parameter | 引入參數 | 將字段抽取為方法中的參數 | ||
Encapsulate Filed | 封裝字段 | 為字段提供setter/getter方法 |
Introduce Factory
Selected entity is not a constructor invocation or definition.
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Generalize Declared Type | 把非原始對象字段(或方法參數)替換為其父類型。 | |||
Infer Generic Type Arguments | 為原始形式的那些類型推測恰當的泛型類型 |
Generalize Declared Type 可能出現的異常
Generalize Declared Type is not supported on primitive types. 不支持原始類型
名稱 |
快捷鍵
|
直譯 | 作用范圍 |
描述
|
Migrate JAR File | ||||
Create Script | ||||
Apply Script | ||||
History |