图解如何利用Intellij IDEA进行代码重构
源:https://jingyan.baidu.com/article/c45ad29c64f7e7051653e27d.html
重命名类,打开 Refactor -> Rename 或 Shift+F6,输入新类名,如果需要修改变量名,则勾上 要修改的代码,如下图所示:

- 2
重命名文件,打开 Refactor -> Rename File,输入新文件名,如下图所示:

- 3
修改方法签名(参数、方法名、返回值等),打开 Refactor -> Change Signature,如下图所示:

- 4
实例方法变成静态方法,打开 Refactor -> Make Static,如下图所示:

- 5
静态方法转为实例方法,打开 Refactor -> Convert To Instance Method,将参数中包含当前类 对象的静态方法转为实例方法,如下图所示:

- 6
移动类,打开 Refactor -> Move 或 F6,指定目的包或作为内部类,如下图所示:

- 7
复制类,打开 Refactor -> Copy 或 F5,指定目的包,如下图所示:

- 8
方法或属性转为变量。打开 Refactor -> Extract -> Variable 或 Ctrl+Alt+V,将对象属性或方法调 用转本地变量,如下图所示:

- 9
数值转为常量。打开 Refactor -> Extract -> Constants 或 Ctrl+Alt+C,输入常量值,回车确认, 数值便转为常量,如下图所示:

- 10
变量转为对象属性。执行 Refactor -> Extract -> Field 或 Ctrl+Alt+F,输入属性名,回车确认, 变量便转为为对象属性,如下图所示:

- 11
变量转为方法参数。执行 Refactor -> Extract -> Parameter 或 Ctrl+Alt+P,然后输入参数名,回 车确认,变量便转为方法参数,如下图所示:

- 12
扩展多个参数为一个参数对象。光标移到方法名上,执行 Refactor -> Extract -> Parameter Object,选择要封装的参数,输入对象参数类型,如下图所示:

- 13
扩展变量或表达式为方法。光标移到要转换的变量上,执行 Refactor -> Extract -> Method 或 Ctrl+Alt+M,输入方法名,如下图所示:

- 14
扩展变量或表达式为内部类或匿名类。执行 Refactor -> Extract -> Method Object,输入类名,如下图所示:

- 15
创建委托类。执行 Refactor -> Extract -> Delegate,选择要委托的方法,便生成了委托类,如下图所示:

- 16
创建接口。执行 Refactor -> Extract -> Interface,选择接口方法,便生成了接口,如下图所示:

- 17
生成父类。执行 Refactor -> Extract -> Superclass,选择父类方法,便生成了父类,如下图所示:

- 18
将方法的实现代码复制到调用处并删除方法。执行 Refactor -> Inline 或 Ctrl+Alt+N,如下图所示:

- 19
将方法或属性提升到父类中。执行 Refactor -> Pull Members Up,如下图所示:

- 20
将方法或属性推到子类中。执行 Refactor -> Push Members Down,如下图所示:

- 21
重新封装方法返回值对象。执行 Refactor -> Wrap Return Value,输入返回对象类名,如下图所示:

- 22
使用工厂方法模式替换构造器。执行 Refactor -> Replace Constructor With Factory Method,输 入工厂方法名,如下图所示:

- 23
使用创建者模式替换构造器。执行 Refactor -> Replace Constructor With Builder,输入 Builder 的类名,如下图所示:

图解如何利用Intellij IDEA进行代码重构的更多相关文章
- 二十九、利用 IntelliJ IDEA 进行代码对比的方法
我们会有这样的需求,即:想对比出两个不同版本代码的区别.如何实现? 第 1 种:如果我们是从 SVN 检出的项目,并且想比较本地代码与从 SVN 检出时的代码相比都有那些区别,可以按如下步骤操作, 如 ...
- 利用 IntelliJ IDEA 进行代码对比的方法
Sometimes,我们会有这样的需求,即:想对比出两个不同版本代码的区别.如何实现? 第 1 种:如果我们是从 SVN 检出的项目,并且想比较本地代码与从 SVN 检出时的代码相比都有那些区别,可以 ...
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(十二) 代码重构使用反射工厂解耦(一)缓存切换
前言 上一篇中,我们用了反射工厂来解除BLL和UI层耦合的问题.当然那是最简单的解决方法,再复杂一点的程序可能思路相同,但是在编程细节中需要考虑的就更多了,比如今天我在重构过程中遇到的问题.也是接下来 ...
- CSS代码重构与优化之路
作者:@狼狼的蓝胖子 网址:http://www.cnblogs.com/lrzw32/p/5100745.html 写CSS的同学们往往会体会到,随着项目规模的增加,项目中的CSS代码也会越来越多, ...
- CSS代码重构
CSS代码重构的目的 我们写CSS代码时,不仅仅只是完成页面设计的效果,还应该让CSS代码易于管理,维护.我们对CSS代码重构主要有两个目的:1.提高代码性能2.提高代码的可维护性 提高代码性能 提高 ...
- 推荐五款优秀的PHP代码重构工具
在软件工程学里,重构代码一词通常是指在不改变代码的外部行为情况下而修改源代码.软件重构需要借助工具完成,而重构工具能够修改代码同时修改所有引用该代码的地方.本文收集了五款出色的PHP代码重构工具,以帮 ...
- 代码重构 & 代码中的坏味道
1.重构 1.1 为什么要重构 1.1.1 改进程序设计 程序员为了快速完成任务,在没有完全理解整体架构之前就开始写代码, 导致程序逐渐失去自己的结构.重构则帮助重新组织代码,重新清晰的体现 程序结构 ...
- 如何把if-else代码重构成高质量代码
原文:https://blog.csdn.net/qq_35440678/article/details/77939999 本文提纲: 为什么我们写的代码都是if-else? 这样的代码有什么缺点? ...
- CSS代码重构与优化
CSS代码重构的基本方法 前面说到了CSS代码重构的目的,现在我们来说说一些如何达到这些目的的一些基本方法,这些方法都是易于理解,容易实施的一些手段,大家平时可能也不知不觉地在使用它. 提高CSS性能 ...
随机推荐
- VBA宏注释(四)
注释用于记录程序逻辑和用户信息,其他程序员将来可以阅读并理解相同的代码无缝工作. 它包括由开发者,修改者以及还可以包括合并逻辑的信息. 解释器在执行时忽略注释. VBA中的注释用两种方法表示,它们分别 ...
- wangeditor富编辑器在node和vue前后台分离的使用
本来是想用百度的ueditor编辑器来达到想要的功能的,但在使用中,感觉前后台分离上,需要引入的东西过多,不轻量:然后就去尝试用wangeditor(这个名字听着感觉有点太随意的感觉....但功能上还 ...
- Flutter-现有iOS工程引入Flutter
前言 Flutter 是一个很有潜力的框架,但是目前使用Flutter的APP并不算很多,相关资料并不丰富,介绍现有工程引入Flutter的相关文章也比较少.项目从零开始,引入Flutter操作比较简 ...
- perl判断文件是否存在 perl -e
perl 有很多的命令 其中有 -e 是判断文件和目录是否存在 代码如下: #!/usr/bin/perl $fileExist = -e "/var/log/messages&qu ...
- C++ 项目和资源导引
值得学习的C语言开源项目 注意:本文转载自:https://blog.csdn.net/a110658684/article/details/78862348 - 1. Webbench Webben ...
- js 实现复制功能的四种方式的优劣对比
今日网上浏览别人项目,看到有人用了document.execCommand这个属性,于是想起之前我选用Clipboard.js 来实现.对于这种不常用的属性还是不太放心,于是随手查了下关于复制的资料, ...
- 【Day5】2.反爬策略之代理IP
import urllib.request as ur proxy_address = ur.urlopen('http://api.ip.data5u.com/dynamic/get.html?or ...
- java_字符串
一.字符串变量 由一个专门的字符串类来进行存储处理字符串的,String类 二.字符串的连接 连接符:+ 转义字符 每个转义字符都是由两个符号组成,但是编译器把它当成一个字符. 三.字符串处理 1.求 ...
- Ubuntu系统---配置OpenCV
Ubuntu系统---配置OpenCV 目录 一.Ubuntu下配OpenCV 二.Ubuntu下配python-opencv 说明 上述一.二两种方式,配置OpenCV还是有区别的.按个人已有知 ...
- bloomberg bulkfile 在oracle的存储
文章导航 bloomberg bulkfile 解析 bloomberg bulkfile 在oracle的存储 一 表名和字段名称的命名规则 1.1. 表名以文件名称直接命名,将文件名中的" ...