当前位置:网站首页>重构--Rename

重构--Rename

2022-06-10 03:11:00 李桥s2008100262

目录

1、Rename概念

2、什么要进行Rename?

3、Rename实操

3.1 、package(包)Rename

3.2 、class(类)重命名Rename

3.2.1、方法1

3.2.2、方法2

3.3 、method(方法)重命名Rename

 3.3.1、方法1

3.2.2、方法2

3.4 、method parameter(方法参数)重命名Rename

3.5 、field(属性)重命名Rename

3.6 、local variable(局部变量)重命名Rename

4、总结

参考文献


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、参考文献

      

 

 

 

原网站

版权声明
本文为[李桥s2008100262]所创,转载请带上原文链接,感谢
https://liqiao.blog.csdn.net/article/details/125196076