IntelliJ IDEA提取方法對象重構(gòu)

2018-11-03 11:25 更新

"提取方法對象重構(gòu)" 將方法移動到一個新類中,將所有局部變量轉(zhuǎn)換為其字段,從而允許您將該方法分解為同一對象上的其他方法。它是提取方法的替代,并且可以在提取的方法中具有多個返回值時使用。

示例

重構(gòu)前 重構(gòu)后
class Account {
    int gamma (int val1, ...) {
	    //some computations
		             return c-2*a;
    }
}
class Account {
    int gamma (int val1, ...) {
        Calculations calculations = new Calculations(val1, ...).invoke();
        int c = calculations.getC();
        int a = calculations.getA();
        return c-2*a;
    }
    private class Calculations {
        private int val1;
        ...
        private int a;
        private int c;
        public Calculations(int val1, ...) {
            this.val1 = val1;
            ...
        }
        public int getA() {return a;}
        public int getC() {return c;}
        public Calculations invoke() {
            ...//computations
               return this;
        }
    }
}

若要提取方法對象,請按照下列步驟操作:

  1. 在編輯器中,選擇要提取到對象中的方法代碼塊。
  2. 在主菜單上,或從選擇的上下文菜單中選擇:重構(gòu)| 提取| 方法對象。
  3. 選擇是否要創(chuàng)建內(nèi)部類或匿名類。

    如果所選的方法代碼塊包含應(yīng)單獨(dú)訪問的局部變量,則不能將該方法對象提取到匿名類中。在這種情況下,可以將方法對象提取到內(nèi)部類中,該類將包含所需的getter。

  4. 如果要創(chuàng)建內(nèi)部類,則需要指定類的名稱和可見性范圍。如果需要,您也可以將該類設(shè)為靜態(tài)。
  5. 如果你想創(chuàng)建一個匿名類,你應(yīng)該指定方法的名稱。
  6. 在 "參數(shù)" 區(qū)域中選擇將被用作參數(shù)的變量。
  7. 審閱簽名預(yù)覽并單擊 "確定"。
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號