利用Eclipse进行重构(下)

翻译 2006年06月11日 22:38:00
 
Extract Method
       如果方法中含有过多特定的操作,方法太长,或者其中的某段代码被多次使用,这时,可以用提炼方法重构将这部分代码提取到单独的方法中。在Eclipse中应用此重构方便快捷。
       选中要提炼的代码段,从重构菜单中选择提炼方法项,或者使用快捷键Alt + Shift + M。
       在提炼方法对话框中,输入新方法的名字,选择修饰词,选择是否让新方法抛出运行时异常。在底部提供了新方法的预览。
 
 
Extract Local Variable
       使用一个变量来代替一个表达式有很多好处。如果表达式在多处被使用,这样能够提高性能,而且也提高了代码的可读性。要把一个表达式提炼为局部变量,选择要提炼的表达式,从重构菜单中选择提炼局部变量项,或者使用快捷键Alt + Shift + L。
       在提炼局部变量对话框中输入新变量的名字,选择是否要替换所有的表达式,是否使此变量为final。在对话框的底部提供变量的预览。
      
Extract Constant
       提炼常量与提炼局部变量很相似,唯一的区别是提炼常量重构可以选择提炼出的常量的修饰词,而且此常量将作为类的成员变量。
 
Introduce Parameter
       介绍参数重构在方法中创建新的参数,然后用此新参数取代局部变量或者成员变量的实例。要是用此重构,选中方法中一个成员变量或局部变量的引用,然后从重构菜单中选择介绍参数项。
 
 
Introduce Factory
       工厂是用来创建新对象,返回新创建对象的方法。你可以选择一个类的构造方法,从重构菜单中选择介绍工厂项,应用此重构,为此类创建工厂方法。
      
介绍工厂对话框,输入工厂方法的名字和需要工厂方法创建的对象的名字。选择构造方法的修饰词是否为私有。
       点击OK按钮后,在指定的类中会出现此指定工厂方法。此方法创建一个当前类的实例,然后返回此实例。
 
Convert Local Variable to Field
       转换局部变量为成员变量重构,将方法内的变量声明移动到方法所在类中,使该变量对整个类可见。选择一个局部变量,从重构菜单中选择转换局部变量为成员变量项,随后打开配置的对话框。
      
       在此对话框中,添入成员变量的名字,选择修饰词,选择在哪里实例化此成员变量。随后的声明为静态声明为final 选择项是否可以使用,取决于实例化位置的选择情况。
 
Encapsulate Field
       要正确的实践面向对象编程,应该将成员变量的修饰词置为私有,提供相应的访问器来访问这些成员变量。但是这些操作很烦琐。如果使用了封装成员变量重构,则十分方便。选择一个成员变量,从重构菜单中选择封装成员变量项。
 
       在封装局部变量对话框中,添入Getter, Setter方法的名字,选择新方法在哪个方法后出现。选择合适的修饰词。应用了此重构会创建两个新方法,将此成员变量的修饰词置为私有,将对此成员变量的引用改变为对新方法的引用。
 
重构项列表:
       下表从Eclipse帮助中提取,列出了各种重构支持的Java资源类型,对应的快捷键。
 

名字
可应用的Java元素
快捷键
Undo
在一次重构后可执行
Alt + Shift + Z
Redo
在一次撤销重构后可执行
Alt + Shift + Y
Rename
对方法,成员变量,局部变量,方法参数,对象,类,包,源代码目录,工程可用。
Alt + Shift + R
Move
对方法,成员变量,局部变量,方法参数,对象,类,包,源代码目录,工程可用。
Alt + Shift + V
Change Method Signature
对方法可用。
Alt + Shift + C
Convert Anonymous Class to Nested
对匿名内部类可用。
 
Move Member Type to New File
对嵌套类可用。
 
Push Down
对同一个类中成员变量和方法可用。
 
Pull Up
对同一个类中成员变量和方法,嵌套类可用。
 
Extract Interface
对类可用。
 
Generalize Type
对对象的声明可用。
 
Use Supertype Where Possible
对类可用。
 
Inline
对方法,静态final类,局部变量可用。
Alt + Shift + I
 
Extract Method
对方法中的一段代码可用。
Alt + Shift + M
 
Extract Local Variable
对选中的与局部变量相关的代码可用。
Alt + Shift + L
 
Extract Constant
对静态final类变量,选中的与静态final类变量相关的代码可用。
 
Introduce Parameter
对方法中对成员变量和局部变量的引用可用。
 
Introduce Factory
对构造方法可用。
 
Convert Local Variable to Field
对局部变量可用。
Alt + Shift + F
Encapsulate Field
对成员变量可用。
 

       本文介绍了Eclipse提供的各种重构。这些重构易于使用,可以确保代码重构更加方便安全。而且可以自动生成代码以提高生产率。

       某些重构改变了某些类的结构,但没有改变项目中其他类的结构,如下推,上移重构。这时,就要确保项目中所有对改变元素的引用都要被更新。这也是为什么要有一个好的测试套。同时,你也要更新测试套中的对改变元素的引用。所以说,重构和单元测试的有机结合对于软件开发是多么的重要。

相关文章推荐

Eclipse 中的重构功能

Eclipse 中的重构功能使其成为了一个现代的 Java 集成开发环境 (IDE),而不再是一个普通的文本编辑器。使用重构,您可以轻松更改您的代码,而不必担心对别处造成破坏。有了重构,您可以只关注于...

Eclipse的重构功能介绍

1.概述 1.1为何重构 Martin Fowler在其著名的>一书中谈到了为何重构的几点原因: 1. 重构可以改进软件设计  如果不进行重构,程序的设计会变得越来越糟糕。通常...

Eclipse 重构功能的使用与重构快捷键

重构是什么? 在代码写好之后改进它的设计。 重构分类:物理结构、类层次结构、类内部结构。 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + ...

实战Eclipse自动重构

       作者用eclipse的自动重构功能对一个程序实例进行重构,目的是探索eclipse自动重构可以在多大程度上辅助重构这个过程。程序实例使用《Refactoring:Improving th...

重构 Eclipse Web项目导致的错误及解决方法

重构 Eclipse Web项目导致的错误及解决方法
  • moliqin
  • moliqin
  • 2011年07月21日 18:05
  • 2022

Eclipse 快捷键技巧 + 重构

第一讲 Eclipse的基本使用1.Eclipse工程的建立 2.源文件夹等概念     Eclipse会自动编译放置在源文件夹内的源文件     一些不需要编译的文件需要放置在普通文件夹下 ...

Eclipse 重构功能的使用与重构快捷键

重构是什么? 在代码写好之后改进它的设计。 重构分类:物理结构、类层次结构、类内部结构。 名称 快捷键 直译 作用范围 描述 Rename Alt + Shift + ...

Enum、EnumMap、EnumSet的用法讲解

今天在工作中遇到这样一个问题,要在前台页面上渲染出来所有的枚举元素,但是前台页面用的是Velocity,所以需要把枚举元素放到Map里,然后在前台进行渲染。这里不能一个一个的取出枚举元素来put的,就...
  • zknxx
  • zknxx
  • 2016年07月11日 23:47
  • 6870

利用Eclipse进行重构(上)

本文介绍了Eclipse支持的重构种类,它们的含义,以及怎样重构。本文同时也可以作为学习重构知识的快速手册。...
  • xiejava
  • xiejava
  • 2011年04月27日 09:33
  • 273

利用Eclipse进行重构

重构和单元测试是程序员的两大法宝,他们的作用就像空气和水对于人一样,平凡,不起眼,但是意义深重。预善事,必先利器,本文就介绍怎样在Eclipse中进行重构。 本文介绍了Eclipse支持的重构种...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用Eclipse进行重构(下)
举报原因:
原因补充:

(最多只允许输入30个字)