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

重构--Inline

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

目录

1、Inline(内联)概念

2、Inline-Local Variable

2.1 、动机

2.2 、实操

3、Inline Method

3.1 、动机

3.2 、实操


1、Inline(内联)概念

         对于Java语言中,我们的class(类) 、method(方法)、local variable(本地局部变更),这些编程元素是有声明与内容的,对于我们的客户端代码通过这些符号引用这些元素的内容/本体完成功能的实现,这时候这种方式不是很合适,而需要让客户端代码直接引用编程元素的本体,重现编程人员最初的思路与业务流程,重新梳理、提练方法,进行重构。

2、Inline-Local Variable

        内联本地局部变量:用本地局部变量的表达式获取逻辑来替换对本地局部变量的引用。

2.1 、动机

场景1:

有时候,在我们的方法中定义了大量的本地局部变量,这些本地局部变量的存在影响了Extract Method的重构,所以我们需要内联局部变量。

场景2:

有时候,在我们的方法中定义了大量的本地局部变量,这些本地局部变量,基本上是属于定义之后,只引用1次,基本没有定义的必要,这种情况下,我们也可以进行内联。

2.2 、实操

对于“tableNameArray”这个本地局部变量,其作用域在声明之后,仅仅使用了一次,这个局部变量就没有存在性的必要了,可以进行内联。

       

 

 内联本地局部变量之后效果:

 

3、Inline Method

       内联方法:用方法的本体来替换对方法的引用。

3.1 、动机

      场景1:有时候,我们对一个方法的提炼Extract Method有得不是很好,并没有达到复用的目的,这个时候,我们就需要将方法进行Inline,等日后,有必要进行Extract Method,我们再进行提炼。

     场景2:有时候,我们对一个方法的提炼Extract Method有得不是很好,提炼的粒度不够,这个时候,我们需要对方法进行Inline恢复原样,再重新进行提炼,以达到提炼的大粒度。如下所示:
       原代码:

方法本体
{
 //对代码块1进行提炼之后的方法调用
  this.method1();  

  //代码块2
      {
 此处省略代码

      }
 


}

第1步: 我们发现对method1()的提炼粒度不够,不是很合适,希望将代码块1与代码块2一起提炼到一个方法中,这个时候,我们就需要使用Inline Method来使代码恢复原状再进行提炼,恢复之后的代码如下:

方法本体
{

    //代码块1
        {

        此处省略代码

         }

  //代码块2
      {
 此处省略代码

      }
 


}

第2步:对代码块1与代码块2进行提炼方法

方法本体
{
 
//将代码块1与代码块2进行提供成新方法method();
  this.method();


}

3.2 、实操

 

 Inline方法之后,原引用方法的地方,变成直接引用方法本体,如下图所示:

 

 

原网站

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