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强大的重构工具,开发者可以更高效、更准确地改善代码结构,提高代码质量和可维护性。掌握这些技巧对于任何希望提高软件开发效率的开发者来说都是必不可少的。
通过有效利用代码折叠,开发者可以更有效地进行代码审查、调试和重构工作,从而提升开发效率。 在实际开发中,配合Eclipse的其他优秀插件,如Code Recommenders(代码推荐)、Mylyn(任务跟踪)和SonarLint(代码...
4. **测试与调试**:利用Eclipse的测试和调试工具验证插件的功能和性能。 5. **打包与分发**:将插件打包成JAR文件或其他格式,供其他Eclipse用户安装和使用。 **第三方插件安装:**用户可以通过Eclipse的“Help” ...
- 当遇到运行时错误时,可以利用Eclipse提供的短转储分析功能来定位问题。 4. **辅助功能**: - ADT支持多种辅助功能,如大字体显示、高对比度模式等,以适应不同用户的视觉需求。 5. **常用快捷键**: - 快速...
这份PDF文档涵盖了如何在Eclipse平台上进行Java开发的各种技术和最佳实践,适用于3.1版本。Eclipse RCP(Rich Client Platform)SDK 3.0.1-win32则是Eclipse的基础开发套件,包含了用于构建桌面应用的框架和工具,...
《Eclipse CDT UI 插件的升级与自动补全功能详解》 Eclipse CDT (C/C++ Development Tools) 是一个强大的开源开发环境,专为C...通过定期更新和维护,开发者可以充分利用Eclipse的强大功能,实现更加流畅的开发流程。
以上是Eclipse中一些常用且强大的快捷键总结,通过合理利用这些快捷键,开发者可以极大地提高编码效率和代码质量。熟练掌握这些快捷键,能够使你在日常开发工作中更加得心应手,尤其是在处理大型项目或复杂代码结构...
我们将通过一个具体的程序实例来展示Eclipse重构的几个关键步骤。 首先,Eclipse的重命名功能可以方便地更新所有相关引用,无论是方法、字段还是变量。在本例中,我们使用《Refactoring:Improving the Design of ...
《深入解析Eclipse插件:org.eclipse.jdt.core_3.6.0.v_A58.jar》 ...通过理解和掌握这个组件的工作原理,开发者不仅可以更高效地利用Eclipse进行开发,还能深入参与到Eclipse插件的定制和扩展中,进一步提升开发体验。
在本文中,我们将深入探讨Eclipse Neon-3的关键功能以及如何利用它来有效地进行Maven和Spring Boot项目的开发。 1. **Eclipse Neon-3的基础特性**: - **界面改进**:Eclipse Neon-3提供了更加现代化和用户友好的...
- 利用Eclipse的自动代码补全和重构功能提高开发效率。 - 使用DDMS(Dalvik Debug Monitor Service)进行调试,监控应用的内存、性能和日志输出。 7. **注意事项**: - 保持Eclipse ADT和Android SDK的更新,以...
1. **Java 9 支持**:Eclipse Oxygen是首个支持Oracle Java 9的版本,使得开发者可以利用其模块化系统(Jigsaw)和其他新特性。 2. **改进的代码编辑器**:包括智能感知、代码自动完成、重构工具等功能的增强,提升...
3.2.7 重构..... 83 3.2.8 使用代码模板..... 86 3.2.9 字符串外部化..... 87 3.2.10 生成Javadoc.. 88 3.2.11 在不同的JRE下编写 Java代码..... 90 3.2.12 编译代码..... 91 3.2.13 Eclipse与Ant的集成..... 92 ...
总的来说,这个压缩包为开发者提供了丰富的资源,了解Eclipse 3.1版本的各项功能,无论是进行Java开发还是构建基于Eclipse的定制化工具,都是极有价值的参考资料。虽然这个版本已经较旧,但它的基本架构和许多核心...
《深入理解Groovy Eclipse插件:org.codehaus.groovy.eclipse (1.0.1)》 在编程领域,Groovy语言以...这个插件的发布,无疑提升了Groovy在企业级开发中的应用价值,使得更多开发者能够高效地利用Groovy进行软件开发。
**Eclipse 开发学习笔记** Eclipse是一款强大的集成开发环境(IDE),主要用于Java应用程序的开发,但通过插件也可以支持其他编程语言,...通过系统的学习和实践,你将能够充分利用Eclipse的强大功能,提升开发效率。
Eclipse是一款广泛使用...通过阅读"eclipse使用说明文档.docx",用户可以更深入地了解这些功能的具体操作步骤,从而更好地利用Eclipse进行Java开发。记住,熟练掌握Eclipse的各项功能,将大大提高开发效率和代码质量。
3.2.7 重构..... 83 3.2.8 使用代码模板..... 86 3.2.9 字符串外部化..... 87 3.2.10 生成Javadoc.. 88 3.2.11 在不同的JRE下编写 Java代码..... 90 3.2.12 编译代码..... 91 3.2.13 Eclipse与Ant的...
3.2.7 重构..... 83 3.2.8 使用代码模板..... 86 3.2.9 字符串外部化..... 87 3.2.10 生成Javadoc.. 88 3.2.11 在不同的JRE下编写 Java代码..... 90 3.2.12 编译代码..... 91 3.2.13 Eclipse与Ant的...
- **代码优化与重构**:利用Eclipse提供的代码分析工具进行代码优化和重构。 5. **学习方法**: 阅读这个中文教程时,应结合实际操作,每学完一个知识点就立即在Eclipse中实践,以加深理解。遇到问题时,可以查阅...