Eclipse下的重構(gòu)整理
Posted on 2009-08-13 23:32 小強(qiáng)摩羯座 閱讀(1052) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): JavaEclipse下的重構(gòu):
什么是重構(gòu)
重構(gòu)是指在保持程序的全部功能的基礎(chǔ)上改變程序結(jié)構(gòu)的過(guò)程。重構(gòu)的類(lèi)型有很多,如更改類(lèi)名,改變方法名,或者提取代碼到方法中。每一次重構(gòu),都要執(zhí)行一系列的步驟,這些步驟要保證代碼和原代碼相一致。
重構(gòu)的理由:為整理,為擴(kuò)展,為優(yōu)雅。
在Eclipse下的重構(gòu):
重構(gòu)會(huì)關(guān)聯(lián)多個(gè)文件,在一次重構(gòu)時(shí),不可再修改并保存文件,重構(gòu)無(wú)法撤銷(xiāo)或重做。
Eclipse中的重構(gòu)類(lèi)型
如果你看一下Eclipse的重構(gòu)菜單,可以看到四部分。第一部分是撤銷(xiāo)和重做。其他的三部分包含Eclipse提供的三種類(lèi)型的重構(gòu)。
第一種類(lèi)型的重構(gòu)改變代碼的物理結(jié)構(gòu),像Rename和Move。第二種是在類(lèi)層次上改變代碼結(jié)構(gòu),例如Pull Up和Push Down。第三種是改變類(lèi)內(nèi)部的代碼,像Extract Method和Encapsulate Field。這三部分的重構(gòu)列表如下。
類(lèi)型1 物理結(jié)構(gòu)
l Rename
l Move
l Change Method signature
l Convert Anonymous Class to Nested
l Convert Member Type to New File:內(nèi)部類(lèi)提出一個(gè)單獨(dú)類(lèi)。
類(lèi)型2 類(lèi)層次結(jié)構(gòu)
l Push Down:將父類(lèi)中方法或成員移到子類(lèi)。
l Push Up
l Extract Interface
l Generalize Type (Eclipse 3)
l User Supertype Where Possible
類(lèi)型3 類(lèi)內(nèi)部結(jié)構(gòu)
l Inline
l Extract Method
l Extract Local Variable
l Extract Constant
l Introduce Parameter:引進(jìn)參數(shù)替換local var
l Introduce Factory
l Encapsulate Field
表從Eclipse幫助中提取,列出了各種重構(gòu)支持的Java資源類(lèi)型,對(duì)應(yīng)的快捷鍵。
名字
|
可應(yīng)用的Java元素
|
快捷鍵
|
Undo
|
在一次重構(gòu)后可執(zhí)行
|
Alt + Shift + Z
|
Redo
|
在一次撤銷(xiāo)重構(gòu)后可執(zhí)行
|
Alt + Shift + Y
|
Rename
|
對(duì)方法,成員變量,局部變量,方法參數(shù),對(duì)象,類(lèi),包,源代碼目錄,工程可用。
|
Alt + Shift + R
|
Move
|
對(duì)方法,成員變量,局部變量,方法參數(shù),對(duì)象,類(lèi),包,源代碼目錄,工程可用。
|
Alt + Shift + V
|
Change Method Signature
|
對(duì)方法可用。
|
Alt + Shift + C
|
Convert Anonymous Class to Nested
|
對(duì)匿名內(nèi)部類(lèi)可用。
|
|
Move Member Type to New File
|
對(duì)嵌套類(lèi)可用。
|
|
Push Down
|
對(duì)同一個(gè)類(lèi)中成員變量和方法可用。
|
|
Pull Up
|
對(duì)同一個(gè)類(lèi)中成員變量和方法,嵌套類(lèi)可用。
|
|
Extract Interface
|
對(duì)類(lèi)可用。
|
|
Generalize Type
|
對(duì)對(duì)象的聲明可用。
|
|
Use Supertype Where Possible
|
對(duì)類(lèi)可用。
|
|
Inline
|
對(duì)方法,靜態(tài)final類(lèi),局部變量可用。
|
Alt + Shift + I
|
Extract Method
|
對(duì)方法中的一段代碼可用。
|
Alt + Shift + M
|
Extract Local Variable
|
對(duì)選中的與局部變量相關(guān)的代碼可用。
|
Alt + Shift + L
|
Extract Constant
|
對(duì)靜態(tài)final類(lèi)變量,選中的與靜態(tài)final類(lèi)變量相關(guān)的代碼可用。
|
|
Introduce Parameter
|
對(duì)方法中對(duì)成員變量和局部變量的引用可用。
|
|
Introduce Factory
|
對(duì)構(gòu)造方法可用。
|
|
Convert Local Variable to Field
|
對(duì)局部變量可用。
|
Alt + Shift +
|