使用Eclipse进行java代码重构资料.docx

上传人:b****3 文档编号:1098120 上传时间:2022-10-16 格式:DOCX 页数:9 大小:93.82KB
下载 相关 举报
使用Eclipse进行java代码重构资料.docx_第1页
第1页 / 共9页
使用Eclipse进行java代码重构资料.docx_第2页
第2页 / 共9页
使用Eclipse进行java代码重构资料.docx_第3页
第3页 / 共9页
使用Eclipse进行java代码重构资料.docx_第4页
第4页 / 共9页
使用Eclipse进行java代码重构资料.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

使用Eclipse进行java代码重构资料.docx

《使用Eclipse进行java代码重构资料.docx》由会员分享,可在线阅读,更多相关《使用Eclipse进行java代码重构资料.docx(9页珍藏版)》请在冰豆网上搜索。

使用Eclipse进行java代码重构资料.docx

使用Eclipse进行java代码重构资料

类型1物理结构

1.Rename 

快捷键:

alt+shift+r

作用:

Rename重构的功能就是重命名Java元素。

虽然可以通过手动修改文件的文件名或其它Java元素的名称,但这种方式不会更新与此Java元素相关联的引用,用户必须手动查找和此Java元素相关的位置,然后进行手动修改。

通过手动修改名称的方式,造成笔误的可能性会太太增加。

通过Eclipse提供的Rename的功能,Eclipse会自动完成更新相关引用的操作。

提示:

非Java项目和Java文件等也可以通过重构菜单的Rename进行重命名。

2.Move

快捷键:

alt+shift+v

作用:

Move的重构和Rename的重构类似,它可以把一个Java元素从一个地方移动到另一个地方,Move的重构主要用来移动一个类到不同的包下。

首先选中一个Java文件,选择Refactor菜单下的Move菜单项

3.ChangeMethodSignature

快捷键:

alt+shift+c

作用:

“ChangeMethodSignature”重构的功能是改变方法的定义,例如改变方法的参数名称、类型和个数、返回值的类型,方法的可见性以及方法的名称等。

 

4.ConvertAnonymousClasstoNested 

功能:

“ConvertAnonymousClasstoNested”重构的功能是把匿名类改成内部类,这样同一个类的其它部分也可以共享此类了。

 

例如有例程1所示的类。

 

例程1KeyListenerExample.java

publicclassKeyListenerExample{

Displaydisplay;

Shellshell;

KeyListenerExample(){

display=newDisplay();

shell=newShell(display);

shell.setSize(250,200);

shell.setText("AKeyListenerExample");

Texttext=newText(shell,SWT.BORDER);

text.setBounds(50,50,100,20);

text.addKeyListener(newKeyListener(){

publicvoidkeyPressed(KeyEvente){

System.out.println("keyPressed-"+e.character);

}

publicvoidkeyReleased(KeyEvente){

System.out.println("keyReleased-"+e.character);

}

});

shell.open();

while(!

shell.isDisposed()){

if(!

display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args){

newKeyListenerExample();

}

}

在KeyListenerExample类有一个匿名类,实现了KeyListener接口,可以把这个匿名类改成内部类,首先选择匿名类,右键选择Refactor的“ConvertAnonymousClasstoNested”菜单,输入内部类的名称,如图6所示。

图6“ConvertAnonymousClasstoNested”对话框

重构后的结果是Eclipse为此创建了一个内部类,名称为TestKeyListener,重构后的代码如例程2所示。

 

例程2重构后的KeyListenerExample.java

publicclassKeyListenerExample{

privatefinalclassTestKeyListenerimplementsKeyListener{

publicvoidkeyPressed(KeyEvente){

System.out.println("keyPressed-"+e.character);

}

publicvoidkeyReleased(KeyEvente){

System.out.println("keyReleased-"+e.character);

}

}

Displaydisplay;

Shellshell;

KeyListenerExample(){

display=newDisplay();

shell=newShell(display);

shell.setSize(250,200);

shell.setText("AKeyListenerExample");

Texttext=newText(shell,SWT.BORDER);

text.setBounds(50,50,100,20);

text.addKeyListener(newTestKeyListener());

while(!

shell.isDisposed()){

if(!

display.readAndDispatch())

display.sleep();

}

display.dispose();

}

publicstaticvoidmain(String[]args){

newKeyListenerExample();

}

}

也可以通过“ConvertAnonymousClasstoNested”对话框定义新生成的内部类的可访问性。

 

5.MoveMemberTypetoTopLevel 

作用:

通过“MoveMemberTypetoTopLevel”的重构方式,可以把内部类改成非内部类,并且重新创建一个新的文件,这样其它的类就可以共享此类。

 

例程2创建了一个内部类TestKeyListener,现在可以通过“MoveMemberTypetoTopLevel”重构的方式,把TestKeyListener放入一个单独的类中。

首先选择TestKeyListener类,从右键菜单Refactor中选择“MoveMemberTypetoTopLevel”,打开“MoveMemberTypetoTopLevel”对话框,如图7所示。

图7“MoveMemberTypetoTopLevel”对话框

通过上面“MoveMemberTypetoTopLevel”重构,可以把内部类改成非内部类。

提示:

有些时候,重构并不是一步完成的,可以一步一步重构,例如,首先把匿名类改成内部类,再接着把内部类改成非内部类。

类型2类层次结构

1.PushDown

作用:

PushDown”重构功能是把父类的方法和属性移动到所有的子类中,父类的方法可以选择性的保留抽象方法。

首先选择父类,右键选择Refactor菜单的“PushDown”菜单项,可以通过“PushDown”对话框选择重构,如图8所示。

图8“PushDown”对话框

“PushDown”重构在重新设计类的时候是非常有用的,它可以比较有较的改善类的继承关系,清楚定义类的行为。

2. PullUp

作用:

“PullUp”重构和“PushDown”重构正好相反,它的作用是把方法和属性移动到其父类中去。

选择需要重构的子类,从右键菜单选择Refactor菜单的“Pullup”菜单项,通过“PullUp”对话框进行重构,如图9所示。

图9“PullUp”对话框

提示:

“PullUp”重构和“PushDown”重构后可能会出错,在使用此重构的同时,应该先弄清楚某些方法中是否有引用到其它方法或属性。

3.ExtractInterface

作用:

“ExtractInterface”重构能够从一个已存在的类中提取接口,它可以从某个类中选择方法,把这些方法提取到一个单独的接口中。

选择提取接口的类,右键选择Refactor菜单的“ExtractInterface”菜单项,打开“ExtractInterface”对话框,如图10所示。

图10“ExtractInterface”对话框

单元OK按钮,将会提取TestInterface的接口,提取接口后,当前选择的类将会实现此接口。

 

提示:

只有公用方法才可以被提取为接口的方法。

 

4.GeneralizeDeclaredType 

作用:

“GeneralizeDeclaredType”重构能够改变变量、参数、属性以及函数的返回值的类型,可以把这些类型改成其父类的类型。

在Refactor菜单中选择“GeneralizeDeclaredType”,如图11所示。

图11“GeneralizeDeclaredType”对话框

单击OK按钮,能够把声明的类型改成当对话框中选择的类型。

 

5.UserSupertypeWherePossible

作用:

“UserSupertypeWherePossible”重构能够用某一个类的父类的类型替换当前类的类型,选择需要被替换引用的类。

在Refactor菜单中选择“UserSupertypeWherePossible”打开“UserSupertypeWherePossible”对话框,如图12所示。

图12“UserSupertypeWherePossible”对话框

“GeneralizeDeclaredType”重构和“UserSupertypeWherePossible”重构在面向接口编程方面是很有用的,可以把引用的对象尽可能用接口进行实现。

提示:

“UserSupertypeWherePossible”重构将替换其它类中的引用,要想看到重构的效果,应该找到其它类引用的位置,此操作不会修改当前文件。

类型3类内部结构

1.Inline 

快捷键:

alt+shift+i

作用:

“Inline”重构能用函数的内容替换掉函数的引用。

首先选择函数的引用,在Refactor菜单中选择“Inline”打开“Inline”对话框,如图13所示。

图13“Inline”对话框

单击确定按钮,Eclipse将会用方法实现的部分替换引用的部分,即当前不采用方法调用的方式进行操作。

也可以选择“Allinvocations”和“Deletemethoddeclaration”,Eclipse会替换掉所有引用方法的位置,并且删除方法。

提示:

Inline会用方法的实现部分替换所有调用方法的地方。

2.ExtractMethod 

快捷键:

alt+shift+m

“ExtractMethod”重构和“Inline”重构相反,它能够从冗长的方法中提取小的方法,把大的方法分解成多个小方法来实现,通过此重构能够使代码看上去更简单漂亮,也很大程度上提高代码的复用性。

可以选择要提取方法的代码,在Refactor菜单中选择“ExtractMe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1