<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Vincent

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

    利用Eclipse進行重構(gòu)(下)

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

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

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

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


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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 精品日韩99亚洲的在线发布| 久久精品国产96精品亚洲 | 精品亚洲一区二区三区在线播放| 亚洲码欧美码一区二区三区| 999国内精品永久免费视频| 亚洲综合小说久久另类区| 精品无码国产污污污免费网站| 亚洲精品高清视频| 99视频在线免费看| 亚洲喷奶水中文字幕电影| 67194成是人免费无码| 亚洲精品无码久久久久YW| 高清国语自产拍免费视频国产| 久久亚洲精品无码av| 免费人成视网站在线观看不卡| 一级特黄a大片免费| 亚洲欧洲国产精品香蕉网| 免费高清国产视频| 亚洲高清视频免费| 成年女人午夜毛片免费看| 亚洲a∨无码精品色午夜| 亚洲国产精品一区二区第四页| 精品无码国产污污污免费网站国产| 精品国产_亚洲人成在线高清| 日本免费大黄在线观看| 国产亚洲国产bv网站在线| 国产一区二区三区在线免费观看 | 亚洲七久久之综合七久久| 日韩免费无砖专区2020狼| 国产V片在线播放免费无码| 亚洲视频在线观看不卡| 国产精品国产午夜免费福利看| 一级做a爱过程免费视频高清| 亚洲AV无码专区亚洲AV伊甸园| 99久久久国产精品免费无卡顿| 直接进入免费看黄的网站| 亚洲AV人无码激艳猛片| 日本特黄a级高清免费大片| 99免费在线视频| 亚洲熟女乱色一区二区三区| 亚洲欧洲∨国产一区二区三区|