当前位置:网站首页>重构--Rename
重构--Rename
2022-06-10 03:11:00 【李桥s2008100262】
目录
3.4 、method parameter(方法参数)重命名Rename
3.6 、local variable(局部变量)重命名Rename
1、Rename概念
Rename即重命名,从字面上理解,Rename就是对一个编程实体进行重命名,编程实体可以是一个package(包)、class(类)、method(方法)、method parameter(方法参数)、属性(field)、local variable(局部变量)。而这里我想强调的重命名不仅仅是这一层次的重命名,它要做得更多,当我们需要对一个编程元素进行重命名,我们会进行3个步骤:
第1步:找到所有对这个编程元素的引用点,也就是调用该编程元素的代码点
第2步:给该编程元素找到一个新的可以解释该编程元素功能的新名称,并进行重命名
第3步:将第1步中所有的引用点,从旧的符号引用转换为新的符号引用
2、什么要进行Rename?
当一个旧的package(包)、class(类)、method(方法)、method parameter(方法参数)、local variable(局部变量)其名称不足以进行自我解释,需要特别的注释才能表达其功能、职责时,我们这个时候需要进行Rename,新的名字可以正确地表达其功能、职责,要达到编程元素名称与本体的语义保持一致。我们都知道,要做到这一点比较难,当我们第一次命名一个方法时,该功能比较简单,其方法名可以正确的表达其功能与职责,但是随着需求迭代、业务变更等,我们不断的在这个方法中增加新的业务处理逻辑,此时方法的命名不足以表达其语义时,这个时候,我们是需要有必要进行重命名的,所以我们一定要掌握这个重构手法。
3、Rename实操
非常幸运的是,目前集成开发工具IDE(eclipse、idea)他们都提供了工具上的支持,在第1部分中描述的重构的3个步骤,工具可以自动帮助我们完成,速度如此之快、效率如此之高、如此之安全会让我们感觉到工具之强大。
3.1 、package(包)Rename
第1步:选中一个package(包)
方法1:选中package声明的地方
方法2:选中Package Explorer中的package

第2步: 使用快捷键或者菜单命令打开Rename窗口

Update references:表示更新所有的引用点,即将原来调用旧方法的客户端代码,全部修改为调用 新方法
Rename subpackages:表示将原来旧包下的所有子包也进行重命名,将它们全部移动到新的包下
Update textual occurences in comments and strings(force preview):表示对Java源文件进行全文搜索,将所有在注释中出现的、字符串中出现的包名引用也进行更新
Update fully qualified names in non-java text files(force preview):表示对非Java源文件更新其全限定名称
第3步:输入新的名称并确认

3.2 、class(类)重命名Rename
3.2.1、方法1
第1步:通过Java Editor 选中class(类)声明的地方

第2步: 使用快捷键或者菜单命令打开Rename窗口

第3步: 修改名称之后,回车完成Rename

3.2.2、方法2
第1步:通过Package Explore选中class(类)

第2步: 使用快捷键或者菜单命令打开Rename窗口

Update references:表示更新所有的引用点,即将原来调用旧方法的客户端代码,全部修改为调用 新方法
Update textual occurences in comments and strings(force preview):表示对Java源文件进行全文搜索,将所有在注释中出现的、字符串中出现的包名引用也进行更新
Update fully qualified names in non-java text files(force preview):表示对非Java源文件更新其全限定名称
第3步:输入新的名称并确认

3.3 、method(方法)重命名Rename
3.3.1、方法1
第1步:通过Java Editor 选中method(方法)声明的地方

第2步: 使用快捷键或者菜单命令打开Rename窗口

第3步: 修改名称之后,回车完成Rename

3.2.2、方法2
第1步:通过Outline窗口选中method(方法)

第2步: 使用快捷键或者菜单命令打开Rename窗口

Update references:表示更新所有的引用点,即将原来调用旧方法的客户端代码,全部修改为调用 新方法
第3步:输入新的名称并回车确认

3.4 、method parameter(方法参数)重命名Rename
第1步:选中method parameter(方法参数)

第2步: 使用快捷键或者菜单命令打开Rename窗口

第3步:输入新的名称并回车确认

3.5 、field(属性)重命名Rename
第1步:选中field(属性)

第2步: 使用快捷键或者菜单命令打开Rename窗口

第3步:输入新的名称并回车确认
完成Rename之后,field(属性)名称会被修改,所有引用旧名称的客户端代码会引用到新的field(属性)名称。
3.6 、local variable(局部变量)重命名Rename
第1步:选中local variable(局部变量)

第2步: 使用快捷键或者菜单命令打开Rename窗口

第3步:输入新的名称并回车确认

4、总结
像Eclipse这些IDE工具为什么会设计Rename这样的重构功能并加以实现,其理论基础源于Martin Fowler这样的面向对象大师人物,他对面向对象重构经验进行了总结,并呼吁这些IDE厂商进行实现。
5、参考文献




边栏推荐
- Esp32 intrinsic function / variable cannot jump to definition
- ModuleNotFoundError: No module named ‘pip‘
- 1px問題
- jupyter notebook配置虚拟环境
- 三个月GMV6000w+,盘点家纺行业打造爆款的关键
- 在不同领域内自相关函数/自协方差函数含义辨析
- Shift+ right mouse button No: Open command window here
- 扩展欧几里得模板+例题
- 86. (leaflet house) leaflet military plotting - collection of linear arrows
- 有关直连接口的开发
猜你喜欢

架构的演变

播放暴增5000w,“打感情牌”已成平台新趋势

Tidb experience sharing 02

Sword finger offer 09 Implementing queues with two stacks

在不同领域内自相关函数/自协方差函数含义辨析

Don't pretend to miss the Kindle

Data Lake solutions of various manufacturers

TS 23.122

The new account started to attract nearly 2million fans, and the "old age" account can also become a dark horse for promotion

The annual income is 3.446 billion yuan, and another fellow countryman in Fujian is going to IPO
随机推荐
洛谷 P1902 刺杀大使(二分 | BFS)
Yum Usage Summary
leetcode:305. 岛屿的数量
Idea start multiple services with the same set of code
Determinant and its properties
scanf 格式化输入的一些问题
Luogu p1902 assassinating Ambassador (two points | BFS)
FPGA can perform binocular and monocular operations
C # extension method (this in the method parameter)
Modify pycharm cache file path
switch case语法
Drawing of common charts
The playback capacity of a single video is more than 8000w, so hard core cooking is so superior
修改谷歌浏览器Google Chrome缓存位置
TS 23.122
Educational Codeforces Round 129 (Rated for Div. 2)(A-D)
Some problems of scanf formatting input
Sword finger offer 30 Stack containing min function
Nearly 1million people watched the early morning broadcast, and the Kwai knowledge anchor turned into "Friends of women"?
Is long-term hotel rental a good business?