使用Eclipse中提供的Refactor(重构)工具
1. Rename
Rename重構(gòu)的功能就是重命名Java元素。當(dāng)Java元素的命名不清晰或功能發(fā)生改變的時(shí),為了保持代碼的可讀性,可以通過Eclipse的重構(gòu)功能重命名Java元素。選擇相應(yīng)的Java元素,選擇右鍵Refactor菜單下的Rename菜單可以對當(dāng)前選擇的元素進(jìn)行重命名,在彈出的重命名對話框中修改相應(yīng)的元素名稱即可,例如修改一個(gè)包的重命名
2. Move
Move的重構(gòu)和Rename的重構(gòu)類似,它可以把一個(gè)Java元素從一個(gè)地方移動到另一個(gè)地方,Move的重構(gòu)主要用來移動一個(gè)類到不同的包下。
3. Change Method Signature
“Change Method Signature”重構(gòu)的功能是改變方法的定義,例如改變方法的參數(shù)名稱、類型和個(gè)數(shù)、返回值的類型,方法的可見性以及方法的名稱等。
用它可以改變方法后,其他類對方法的引用也會跟著改變。
4. Convert Anonymous Class to Nested
“Convert Anonymous Class to Nested”重構(gòu)的功能是把匿名類改成內(nèi)部類,這樣同一個(gè)類的其它部分也可以共享此類了。
也可以通過“Convert Anonymous Class to Nested”對話框定義新生成的內(nèi)部類的可訪問性。
5. Move Member Type to Top Level
通過“Move Member Type to Top Level”的重構(gòu)方式,可以把內(nèi)部類改成非內(nèi)部類,并且重新創(chuàng)建一個(gè)新的文件,這樣其它的類就可以共享此類。
類級別重構(gòu)
類級別重構(gòu)有如下一些:
1. Push Down
“Push Down”重構(gòu)功能是把父類的方法和屬性移動到所有的子類中,父類的方法可以選擇性的保留抽象方法。首先選擇父類,右鍵選擇Refactor菜單的“Push Down”菜單項(xiàng),可以通過“Push Down”對話框選擇重構(gòu)
“Push Down”重構(gòu)在重新設(shè)計(jì)類的時(shí)候是非常有用的,它可以比較有較的改善類的繼承關(guān)系,清楚定義類的行為。
2. Pull Up
“Pull Up”重構(gòu)和“Push Down”重構(gòu)正好相反,它的作用是把方法和屬性移動到其父類中去。選擇需要重構(gòu)的子類,從右鍵菜單選擇Refactor菜單的“Pull up”菜單項(xiàng),通過“Pull Up”對話框進(jìn)行重構(gòu)
提示:“Pull Up”重構(gòu)和“Push Down”重構(gòu)后可能會出錯(cuò),在使用此重構(gòu)的同時(shí),應(yīng)該先弄清楚某些方法中是否有引用到其它方法或?qū)傩浴?br />
3. Extract Interface
“Extract Interface”重構(gòu)能夠從一個(gè)已存在的類中提取接口,它可以從某個(gè)類中選擇方法,把這些方法提取到一個(gè)單獨(dú)的接口中。選擇提取接口的類,右鍵選擇Refactor菜單的“Extract
Interface”菜單項(xiàng),打開“Extract Interface”對話框
提示:只有公用方法才可以被提取為接口的方法。
4. Generalize Declared Type
“Generalize Declared Type”重構(gòu)能夠改變變量、參數(shù)、屬性以及函數(shù)的返回值的類型,可以把這些類型改成其父類的類型。
5. User Supertype Where Possible
“User Supertype Where Possible”重構(gòu)能夠用某一個(gè)類的父類的類型替換當(dāng)前類的類型,選擇需要被替換引用的類。
“Generalize Declared Type”重構(gòu)和“User Supertype Where Possible”重構(gòu)在面向接口編程方面是很有用的,可以把引用的對象盡可能用接口進(jìn)行實(shí)現(xiàn)。
提示:“User Supertype Where Possible”重構(gòu)將替換其它類中的引用,要想看到重構(gòu)的效果,應(yīng)該找到其它類引用的位置,此操作不會修改當(dāng)前文件。
類內(nèi)部重構(gòu)
類內(nèi)部重構(gòu)有如下一些:
1. Inline
“Inline”重構(gòu)能用函數(shù)的內(nèi)容替換掉函數(shù)的引用。首先選擇函數(shù)的引用,在Refactor菜單中選擇“Inline”打開“Inline”對話框
單擊確定按鈕,Eclipse將會用方法實(shí)現(xiàn)的部分替換引用的部分,即當(dāng)前不采用方法調(diào)用的方式進(jìn)行操作。也可以選擇“All invocations”和“Delete method declaration”,Eclipse會替換掉所有引用方法的位置,并且刪除方法。
提示:Inline會用方法的實(shí)現(xiàn)部分替換所有調(diào)用方法的地方。
2. Extract Method
“Extract Method”重構(gòu)和“Inline”重構(gòu)相反,它能夠從冗長的方法中提取小的方法,把大的方法分解成多個(gè)小方法來實(shí)現(xiàn),通過此重構(gòu)能夠使代碼看上去更簡單漂亮,也很大程度上提高代碼的復(fù)用性。可以選擇要提取方法的代碼,在Refactor菜單中選擇“Extract Method”打開“Extract Method”對話框
“Extract Method”重構(gòu)是非常好的重構(gòu)方式,能夠把大的方法體重構(gòu)成多個(gè)方法的實(shí)現(xiàn),使代碼更清楚易懂。
提示:“Extract Method”重構(gòu)和“Inline”重構(gòu)是對應(yīng)的,有些時(shí)候?yàn)榱私M織一些不合的函數(shù),可以先通過“Inline”的方式生成一個(gè)大的函數(shù),再通過“Extract Method”來重構(gòu)大的函數(shù),使代碼更趨于合理。
3. Extract Local Variable
在開發(fā)過程中,使用變量代替表達(dá)式是非常好的,這樣能使代碼更容易被理解。Eclipse中可以通過“Extract Local Variable”重構(gòu)實(shí)現(xiàn)提取局部的表達(dá)式。首先選擇表達(dá)式,在Refactor菜單中選擇“Extract Local Variable”打開“Extract Local Variable”對話框
4. Extract Constant
“Extract Constant”重構(gòu)和“Extract Local Variable”重構(gòu)類似,它可以把表達(dá)式定義為常量,另外“Extract Constant”重構(gòu)能夠設(shè)定常量的可見性。選擇表達(dá)式,在Refactor菜單中選擇“Extract
Constant”打開“Extract Constant”對話框
5. Introduce Parameter
“Introduce Parameter”重構(gòu)可以通過函數(shù)中的表達(dá)式、變量或引用為函數(shù)添加新的參數(shù),還能夠自動更新引用此函數(shù)的其它位置的默認(rèn)參數(shù)。要想進(jìn)行“Introduce Parameter”重構(gòu),可以選擇表達(dá)式、變量或引用。在Refactor菜單中選擇“Introduce
Parameter”打開“Introduce Parameter”對話框
6. Introduce Factory
“Introduce Factory”重構(gòu)能夠?yàn)轭悇?chuàng)建工廠方法。首先選擇需要?jiǎng)?chuàng)建工廠方法的類的構(gòu)造函數(shù),在Refactor菜單中選擇“Introduce Factory”打開“Introduce
Factory”對話框
在“Introduce Factory”對話框中,可以輸入工廠方法的名字,以及工廠類,Eclipse將會自動根據(jù)構(gòu)造函數(shù)創(chuàng)建工廠方法。
提示:工廠類應(yīng)該已經(jīng)存在,通常可以在一個(gè)工廠類中為多個(gè)關(guān)聯(lián)的類創(chuàng)建工廠方法,所以在使用“Introduce Factory”重構(gòu)前,應(yīng)該先創(chuàng)建好工廠類。
7. Convert Local Variable to Field
“Convert Local Variable to Field”重構(gòu)能夠把局部的變量轉(zhuǎn)換成類中的全局變量。首先選擇要轉(zhuǎn)換的局部變量,在Refactor菜單中選擇“Convert Local Variable to Field”打開“Convert Local Variable to Field”對話框
在“Convert Local Variable to Field”對話框中,還能夠修改變量的名稱以及變量的可見性。
8. Encapsulate Field
“Encapsulate Field”重構(gòu)能夠包裝屬性的可訪問性,以及生成訪問的方法。首先選擇要包裝的屬性,在Refactor菜單中選擇“Encapsulate Field”打開“Encapsulate Field”對話框
通常通過“Encapsulate Field”可以生成get和set方法。在“Encapsulate Field”對話框中可以輸入屬性的訪問方法的名稱,以及方法生成的位置和方法的可見性。
提示:通過右鍵菜單的Source菜單也能生成相應(yīng)的get和set方法。
總結(jié)
以上是生活随笔為你收集整理的使用Eclipse中提供的Refactor(重构)工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查询去重_【Freya的MySQL课堂】
- 下一篇: hive币2021年预计涨到多少_比特币