posts - 195, comments - 34, trackbacks - 0, articles - 1

          Eclipse下的重構(gòu)整理

          Posted on 2009-08-13 23:32 小強(qiáng)摩羯座 閱讀(1052) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): Java

          Eclipse下的重構(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 +



          主站蜘蛛池模板: 昌吉市| 榆中县| 泌阳县| 田东县| 潞城市| 余庆县| 江永县| 莱阳市| 武平县| 沅陵县| 安图县| 台南县| 泾阳县| 文登市| 东乌| 红安县| 石河子市| 罗江县| 甘南县| 美姑县| 浠水县| 兖州市| 依兰县| 海城市| 西城区| 祁阳县| 维西| 西青区| 庐江县| 平果县| 三江| 图片| 德清县| 通山县| 余庆县| 桓台县| 长宁区| 扶风县| 漳平市| 万全县| 安平县|