利用Eclipse進行重構(下)

Extract Method
       如果方法中含有過多特定的操作,方法太長,或者其中的某段代碼被多次使用,這時,可以用提煉方法重構將這部分代碼提取到單獨的方法中。在Eclipse中應用此重構方便快捷。
       選中要提煉的代碼段,從重構 菜單中選擇提煉方法 項,或者使用快捷鍵Alt + Shift + M。
       在提煉方法對話框中,輸入新方法的名字,選擇修飾詞,選擇是否讓新方法拋出運行時異常。在底部提供了新方法的預覽。
 
 
Extract Local Variable
       使用一個變量來代替一個表達式有很多好處。如果表達式在多處被使用,這樣能夠提高性能,而且也提高了代碼的可讀性。要把一個表達式提煉爲局部變量,選擇要提煉的表達式,從重構 菜單中選擇提煉局部變量 項,或者使用快捷鍵Alt + Shift + L。
       在提煉局部變量對話框中輸入新變量的名字,選擇是否要替換所有的表達式,是否使此變量爲final。在對話框的底部提供變量的預覽。
      
Extract Constant
       提煉常量與提煉局部變量很相似,唯一的區別是提煉常量重構可以選擇提煉出的常量的修飾詞,而且此常量將作爲類的成員變量。
 
Introduce Parameter
       介紹參數重構在方法中創建新的參數,然後用此新參數取代局部變量或者成員變量的實例。要是用此重構,選中方法中一個成員變量或局部變量的引用,然後從重構 菜單中選擇介紹參數 項。
 
 
Introduce Factory
       工廠是用來創建新對象,返回新創建對象的方法。你可以選擇一個類的構造方法,從重構 菜單中選擇介紹工廠 項,應用此重構,爲此類創建工廠方法。
      
介紹工廠 對話框,輸入工廠方法的名字和需要工廠方法創建的對象的名字。選擇構造方法的修飾詞是否爲私有。
       點擊OK按鈕後,在指定的類中會出現此指定工廠方法。此方法創建一個當前類的實例,然後返回此實例。
 
Convert Local Variable to Field
       轉換局部變量爲成員變量重構,將方法內的變量聲明移動到方法所在類中,使該變量對整個類可見。選擇一個局部變量,從重構 菜單中選擇轉換局部變量爲成員變量 項,隨後打開配置的對話框。
      
       在此對話框中,添入成員變量的名字,選擇修飾詞,選擇在哪裏實例化此成員變量。隨後的聲明爲靜態聲明爲 final 選擇項是否可以使用,取決於實例化位置的選擇情況。
 
Encapsulate Field
       要正確的實踐面向對象編程,應該將成員變量的修飾詞置爲私有,提供相應的訪問器來訪問這些成員變量。但是這些操作很煩瑣。如果使用了封裝成員變量重構,則十分方便。選擇一個成員變量,從重構 菜單中選擇封裝成員變量 項。
 
       在封裝局部變量對話框中,添入Getter, Setter方法的名字,選擇新方法在哪個方法後出現。選擇合適的修飾詞。應用了此重構會創建兩個新方法,將此成員變量的修飾詞置爲私有,將對此成員變量的引用改變爲對新方法的引用。
 
重構項列表:
       下表從Eclipse幫助中提取,列出了各種重構支持的Java資源類型,對應的快捷鍵。
 

 

名字
可應用的Java元素
快捷鍵
Undo
在一次重構後可執行
Alt + Shift + Z
Redo
在一次撤銷重構後可執行
Alt + Shift + Y
Rename
對方法,成員變量,局部變量,方法參數,對象,類,包,源代碼目錄,工程可用。
Alt + Shift + R
Move
對方法,成員變量,局部變量,方法參數,對象,類,包,源代碼目錄,工程可用。
Alt + Shift + V
Change Method Signature
對方法可用。
Alt + Shift + C
Convert Anonymous Class to Nested
對匿名內部類可用。
 
Move Member Type to New File
對嵌套類可用。
 
Push Down
對同一個類中成員變量和方法可用。
 
Pull Up
對同一個類中成員變量和方法,嵌套類可用。
 
Extract Interface
對類可用。
 
Generalize Type
對對象的聲明可用。
 
Use Supertype Where Possible
對類可用。
 
Inline
對方法,靜態final類,局部變量可用。
Alt + Shift + I
 
Extract Method
對方法中的一段代碼可用。
Alt + Shift + M
 
Extract Local Variable
對選中的與局部變量相關的代碼可用。
Alt + Shift + L
 
Extract Constant
對靜態final類變量,選中的與靜態final類變量相關的代碼可用。
 
Introduce Parameter
對方法中對成員變量和局部變量的引用可用。
 
Introduce Factory
對構造方法可用。
 
Convert Local Variable to Field
對局部變量可用。
Alt + Shift + F
Encapsulate Field
對成員變量可用。
 
       本文介紹了Eclipse提供的各種重構。這些重構易於使用,可以確保代碼重構更加方便安全。而且可以自動生成代碼以提高生產率。

       某 些重構改變了某些類的結構,但沒有改變項目中其他類的結構,如下推,上移重構。這時,就要確保項目中所有對改變元素的引用都要被更新。這也是爲什麼要有一 個好的測試套。同時,你也要更新測試套中的對改變元素的引用。所以說,重構和單元測試的有機結合對於軟件開發是多麼的重要。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章