Change Signature重構(gòu)

2018-10-24 10:26 更新

Change Signature重構(gòu)

使用Change Signature(更改簽名)重構(gòu)更改函數(shù)名稱,添加,刪除,重新排序和重命名參數(shù),以及通過(guò)調(diào)用層次結(jié)構(gòu)傳播新參數(shù)。

以下示例顯示了運(yùn)行Change Signature重構(gòu)的不同方法。在所有情況下,函數(shù)result()都重命名為generate_result(),并且向此函數(shù)添加了一個(gè)新參數(shù)input。這些示例顯示了函數(shù)調(diào)用,調(diào)用函數(shù)(show_result())和其他代碼片段如何受到影響,具體取決于重構(gòu)設(shè)置。

示例1:重命名函數(shù),添加參數(shù),并通過(guò)函數(shù)調(diào)用傳遞其值

在此示例中,函數(shù)result()重命名為generate_result(),添加參數(shù)input,并將值100作為函數(shù)調(diào)用中的參數(shù)傳遞。

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input) {
}

function show_result() {
    alert('Result: ' + generate_result(100));
}

示例2:重命名函數(shù)并添加默認(rèn)參數(shù)

在此示例中,函數(shù)result()重命名為generate_result()。隨值100添加默認(rèn)參數(shù)input。新參數(shù)以ES6語(yǔ)言級(jí)別的function generate_result(input = 100) {}格式或ES5的input = input || 100格式在generate_result()中進(jìn)行初始化。 

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input = 100) {
}

function show_result() {

    alert('Result: ' + generate_result());
}

示例3:重命名函數(shù),添加默認(rèn)參數(shù),并將參數(shù)傳播到函數(shù)調(diào)用

在此示例中,函數(shù)result()重命名為generate_result()。隨值100添加默認(rèn)參數(shù)input。新參數(shù)以ES6語(yǔ)言級(jí)別的“function generate_result(input = 100) {}”格式或 ES5的“input = input || 100”格式在generate_result()中進(jìn)行初始化。該input參數(shù)通過(guò)調(diào)用函數(shù)show_result()傳播,因此函數(shù)調(diào)用會(huì)相應(yīng)更改。

function result() {
}

function show_result() {
    alert('Result: ' + result());
}
function generate_result(input = 100) {
}

function show_result() {

    alert('Result: ' + generate_result());
}

調(diào)用Change Signature

  • 在編輯器中,將光標(biāo)放在要重構(gòu)的函數(shù)名稱中,然后按Ctrl+F6,或在上下文菜單或主菜單上選擇:Refactor|更改簽名。“更改簽名”對(duì)話框?qū)⒋蜷_(kāi)。

重命名函數(shù)

  • 在“更改簽名”對(duì)話框(Ctrl+F6)中,編輯“名稱”字段。

管理函數(shù)參數(shù)

  • 在“更改簽名”對(duì)話框(Ctrl+F6)中,使用參數(shù)表和右側(cè)的按鈕:
    • 要添加新參數(shù),請(qǐng)單擊圖標(biāo)一般添加svg (Alt+Insert)并指定新參數(shù)的名稱及其默認(rèn)值或要通過(guò)函數(shù)調(diào)用傳遞的值。
    • 要?jiǎng)h除參數(shù),請(qǐng)單擊相應(yīng)行中的任何單元格,然后單擊圖標(biāo)一般刪除svg (Alt+Delete)。
    • 要重新排序參數(shù),請(qǐng)使用圖標(biāo)動(dòng)作previousOccurence svg (Alt+Up)和 圖標(biāo)動(dòng)作nextOccurence svg (Alt+Down)。
    • 要重命名參數(shù),請(qǐng)編輯“名稱”字段。
    • 如有必要, 將新參數(shù)傳播到調(diào)用當(dāng)前函數(shù)的函數(shù)。

沿調(diào)用層次傳播參數(shù)

  1. 在“更改簽名”對(duì)話框 (Ctrl+F6)中,選擇參數(shù)并單擊propagateParameters。將打開(kāi)“選擇傳播新參數(shù)的方法”對(duì)話框。左側(cè)窗格顯示函數(shù)調(diào)用的層次結(jié)構(gòu)。當(dāng)您選擇一個(gè)函數(shù)時(shí),右側(cè)窗格將分別顯示其代碼以及它在Caller Method和Callee Method字段中調(diào)用的函數(shù)的代碼。
  2. 在左側(cè)窗格中,選中要傳播參數(shù)的函數(shù)旁邊的復(fù)選框,然后單擊“確定”。

預(yù)覽更改并完成重構(gòu)

  1. 在“更改簽名”對(duì)話框(Ctrl+F6)中,單擊“預(yù)覽”。
  2. 在“查找”工具窗口的“重構(gòu)預(yù)覽”選項(xiàng)卡中 , 查看預(yù)期的更改,進(jìn)行必要的調(diào)整,然后在準(zhǔn)備好后單擊“執(zhí)行重構(gòu)”。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)