Vincent

          Vicent's blog
          隨筆 - 74, 文章 - 0, 評論 - 5, 引用 - 0
          數據加載中……

          利用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提供的各種重構。這些重構易于使用,可以確保代碼重構更加方便安全。而且可以自動生成代碼以提高生產率。

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

          posted on 2006-08-24 15:01 Binary 閱讀(258) 評論(0)  編輯  收藏 所屬分類: Eclipse


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 理塘县| 浮山县| 玉溪市| 华亭县| 云阳县| 吉隆县| 全南县| 永顺县| 犍为县| 雷州市| 晴隆县| 蕲春县| 惠东县| 邢台市| 关岭| 万宁市| 泰宁县| 滦南县| 彰化市| 达孜县| 卢龙县| 大竹县| 沙田区| 临江市| 曲靖市| 西盟| 顺平县| 眉山市| 蒲城县| 南开区| 台州市| 长岛县| 当阳市| 贵港市| 兴宁市| 通许县| 南康市| 永春县| 关岭| 巫溪县| 甘南县|