使用Eclipse进行java代码重构资料_第1页
使用Eclipse进行java代码重构资料_第2页
使用Eclipse进行java代码重构资料_第3页
使用Eclipse进行java代码重构资料_第4页
使用Eclipse进行java代码重构资料_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、类型 1 物理结构1.Rename快捷键: alt+shift+r作用:Rename重构的功能就是重命名Java 元素。虽然可以通过手动修改文件的文件名或其它 Java 元素的名称, 但这种方式不会更新与此 Java 元素相关联的引用, 用户必须手动查找和此 Java 元素相关的位置,然后进行手动修改。通过手动修改名称的方式,造成笔误的可能性会太太增加。通过 Eclipse 提供的 Rename 的功能, Eclipse 会自动完成更新相关引用的操作。提示:非Java 项目和 Java 文件等也可以通过重构菜单的Rename进行重命名。2.Move快捷键: alt+shift+v作用:Move

2、 的重构和Rename的重构类似,它可以把一个Java 元素从一个地方移动到另一个地方, Move 的重构主要用来移动一个类到不同的包下。首先选中一个Java 文件, 选择 Refactor 菜单下的 Move 菜单项3.Change Method Signature快捷键: alt+shift+c作用:“ Change Method Signature 重”构的功能是改变方法的定义,例如改变方法的参数名称、类型和个数、返回值的类型,方法的可见性以及方法的名称等。4.Convert Anonymous Class to Nested功能 :“ Convert Anonymous Class t

3、o Nested 重”构的功能是把匿名类改成内部类,这样同一个类的其它部分也可以共享此类了。例如有例程 1 所示的类。例程 1 KeyListenerExample.javapublicclassKeyListenerExample Display display;Shell shell;KeyListenerExample() display =new Display();shell =new Shell(display);shell.setSize(250, 200);shell.setText(A KeyListener Example);Text text =new Text(shel

4、l, SWT.BORDER);text.setBounds(50, 50, 100, 20);text.addKeyListener(new KeyListener() publicvoidkeyPressed(KeyEvent e) System.out .println(key Pressed - + e.character);publicSystem.voidkeyReleased(KeyEvent e) out .println(key Released - + e.character););shell.open();whileif(!shell.isDisposed() (!disp

5、lay.readAndDispatch()display.sleep();display.dispose();publicnewstaticvoidmain(String args) KeyListenerExample();在 KeyListenerExample 类有一个匿名类,实现了 KeyListener 接口,可以把这个匿名类改成内部类,首先选择匿名类,右键选择Refactor 的 “Convert Anonymous Class to Nested ”菜单,输入内部类的名称,如图6 所示。图 6 “Convert Anonymous Class to Nested ”对话框重构后的

6、结果是Eclipse 为此创建了一个内部类,名称为TestKeyListener,重构后的代码如例程 2 所示。例程 2 重构后的KeyListenerExample.javapublicclassKeyListenerExample privatefinalclassTestKeyListener implements KeyListener publicvoid keyPressed(KeyEvent e) System.out .println(key Pressed - + e.character);publicSystem.void keyReleased(KeyEvent e) o

7、ut .println(key Released - + e.character);Display display;Shell shell;KeyListenerExample() display =new Display();shell =new Shell(display);shell.setSize(250, 200);shell.setText(A KeyListener Example);Text text =new Text(shell, SWT.BORDER);text.setBounds(50, 50, 100, 20);text.addKeyListener(new Test

8、KeyListener();while(!shell.isDisposed() if(!display.readAndDispatch()display.sleep();display.dispose();publicstaticvoid main(String args) newKeyListenerExample();也可以通过 “Convert Anonymous Class to Nested”对话框定义新生成的内部类的可访问性。5.Move Member Type to Top Level作用:通过 “Move Member Type to Top Level ”的重构方式,可以把内

9、部类改成非内部类,并且重新创建一个新的文件,这样其它的类就可以共享此类。例程 2 创建了一个内部类TestKeyListener,现在可以通过“Move Member Type to TopLevel ”重构的方式, 把 TestKeyListener 放入一个单独的类中。 首先选择 TestKeyListener 类,从右键菜单 Refactor 中选择 “Move Member Type to Top Level ”,打开 “Move Member Type to Top Level ”对话框,如图 7 所示。图 7 “Move Member Type to Top Level ”对话框通

10、过上面 “Move Member Type to Top Level”重构,可以把内部类改成非内部类。提示:有些时候,重构并不是一步完成的,可以一步一步重构,例如,首先把匿名类改成内部类,再接着把内部类改成非内部类。类型 2 类层次结构1.Push Down作用:Push Down”重构功能是把父类的方法和属性移动到所有的子类中,父类的方法可以选择性的保留抽象方法。首先选择父类,右键选择过“Push Down”对话框选择重构,如图Refactor 8 所示。菜单的 “Push Down”菜单项,可以通图 8 “Push Down”对话框“ Push Down”重构在重新设计类的时候是非常有用的

11、,它可以比较有较的改善类的继承关系,清楚定义类的行为。Pull Up作用:“ Pull Up重”构和 “ Push Down”重构正好相反,它的作用是把方法和属性移动到其父类中去。选择需要重构的子类, 从右键菜单选择 Refactor 菜单的 “Pull up菜”单项, 通过 “Pull Up对”话框进行重构,如图 9 所示。图 9 “Pull Up对”话框提示: “Pull Up重”构和 “Push Down”重构后可能会出错,在使用此重构的同时,应该先弄清楚某些方法中是否有引用到其它方法或属性。3.Extract Interface作用:“ Extract Interface 重构”能够从

12、一个已存在的类中提取接口,它可以从某个类中选择方法,把这些方法提取到一个单独的接口中。选择提取接口的类,右键选择Refactor 菜单的 “ExtractInterface菜”单项,打开“ Extract Interface 对话”框,如图10 所示。图 10 “Extract Interface 对话”框单元 OK 按钮,将会提取TestInterface的接口, 提取接口后, 当前选择的类将会实现此接口。提示:只有公用方法才可以被提取为接口的方法。4.Generalize Declared Type作用:“ Generalize Declared Type 重构”能够改变变量、参数、属性以

13、及函数的返回值的类型,可以把这些类型改成其父类的类型。在 Refactor 菜单中选择 “Generalize Declared Type”,如图 11 所示。图 11 “Generalize Declared Type对”话框单击 OK 按钮,能够把声明的类型改成当对话框中选择的类型。5.User Supertype Where Possible作用:“ User Supertype Where Possible 重”构能够用某一个类的父类的类型替换当前类的类型,选择需要被替换引用的类。在Refactor 菜单中选择 “User Supertype WherePossible ”打开 “ U

14、ser Supertype Where Possible对”话框,如图12 所示。图 12 “User Supertype Where Possible ”对话框“ Generalize Declared Type重”构和 “ User Supertype Where Possible编程方面是很有用的,可以把引用的对象尽可能用接口进行实现。重”构在面向接口提示: “User Supertype Where Possible ”重构将替换其它类中的引用,效果,应该找到其它类引用的位置,此操作不会修改当前文件。要想看到重构的类型 3 类内部结构1.Inline快捷键: alt+shift+i作用

15、:“ Inline重构”能用函数的内容替换掉函数的引用。首先选择函数的引用,在选择 “Inline打”开 “Inline对”话框,如图13 所示。Refactor菜单中图 13 “Inline对”话框单击确定按钮, Eclipse 将会用方法实现的部分替换引用的部分,即当前不采用方法调用的方式进行操作。也可以选择 “All invocations 和 “”Delete method declaration ,”Eclipse会替换掉所有引用方法的位置,并且删除方法。提示: Inline 会用方法的实现部分替换所有调用方法的地方。2.Extract Method快捷键: alt+shift+m“

16、 Extract Method 重”构和 “ Inline重构”相反,它能够从冗长的方法中提取小的方法,把大的方法分解成多个小方法来实现, 通过此重构能够使代码看上去更简单漂亮,也很大程度上提高代码的复用性。可以选择要提取方法的代码,在Refactor菜单中选择 “Extract Method打”开“ Extract Method对”话框,如图14 所示。图 14 “Extract Method 对”话框“ Extract Method 重”构是非常好的重构方式,能够把大的方法体重构成多个方法的实现,使代码更清楚易懂。提示: “Extract Method 重”构和 “Inline重”构是对应

17、的,有些时候为了组织一些不合的函数,可以先通过“Inline的”方式生成一个大的函数,再通过“Extract Method 来”重构大的函数,使代码更趋于合理。3.Extract Local Variable快捷键: alt+shift+l在开发过程中, 使用变量代替表达式是非常好的,这样能使代码更容易被理解。Eclipse中可以通过 “Extract Local Variable重构”实现提取局部的表达式。首先选择表达式,在Refactor 菜单中选择 “ Extract Local Variable打开”“ Extract Local Variable对话”框 .4.Extract Con

18、stant作用:“ Extract Constant 重构”和 “ Extract Local Variable 重构”类似,它可以把表达式定义为常量,另外 “Extract Constant 重”构能够设定常量的可见性。选择表达式, 在 Refactor中选择 “Extract Constant 打”开 “Extract Constant 对”话框 .菜单5.Introduce Parameter作用:Introduce Parameter重”构可以通过函数中的表达式、变量或引用为函数添加新的参数,还能够自动更新引用此函数的其它位置的默认参数。要想进行“Introduce Parameter

19、重”构,可以选择表达式、变量或引用。在Refactor菜单中选择 “Introduce Parameter打”开“ Introduce Parameter对”话框6.Introduce Factory作用:“ Introduce Factory 重构”能够为类创建工厂方法。首先选择需要创建工厂方法的类的构造函数,在 Refactor 菜单中选择 “Introduce Factory 打”开 “Introduce Factory 对”话框在“Introduce Factory 对”话框中,可以输入工厂方法的名字,以及工厂类,Eclipse 将会自动根据构造函数创建工厂方法。提示:工厂类应该已经存

20、在,通常可以在一个工厂类中为多个关联的类创建工厂方法,所以在使用 “Introduce Factory 重”构前,应该先创建好工厂类。7.Convert Local Variable to Field作用:“ Convert Local Variable to Field 重构能”够把局部的变量转换成类中的全局变量。首先选择要转换的局部变量,在Refactor 菜单中选择 “Convert Local Variable to Field打开”“ Convert Local Variable to Field对话框”8.Encapsulate Field作用:“ Encapsulate Field 重

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论