重构组合方法之——内联方法

     上一篇文章中介绍的是提取方法,主要目的是将过长方法拆分为若干个小方法以提高程序的可读性。本文的主要目的和提取方法的目的正好相反。如果程序中的方法过短,而且方法体本身的意图也非常明确。这就需要删除该方法,将方法体并入方法调用者当中,这就是【内联方法】——Inline Method

  • 适用场合:方法体和方法名一样意图明确。例如:

       //修改前 int getRating(){ return (moreThanFiveLateDeliveries() ? 2 : 1); } boolean moreThanFiveLateDeliveries(){ return _numberOfLateDeliveries > 5; } //修改后 int getRating(){ return return ((_numberOfLateDeliveries > 5) ? 2 : 1); }

  • 解决方法:将方法体放入到方法调用者的方法体当中,并且删除原有方法。
  • 动机:重构的主要目的是用短小精悍、命名准确的方法来实现更加简单、易读的代码。但是有时一些方法体和方法名一样清晰。有时方法的间接性能够很有帮助,但是不必要的间接方法调用也是很烦人的。【内联方法】的另外一个动机就是将一些琐碎的方法重新整合在一个大的方法体当中,然后再使用【提取方法】来进行重新分解。【内联方法】的第三个用途就是整理间接层。如果程序中使用了过多的间接层,并且每个方法都是另一个方法的简单代理。这时就会在这些间接层和代理中迷失方向,【内联方法】能够提取重点。

    接下来就具体介绍一下【内联方法】重构的实施过程。

  1. 确保要内联的方法不是多态的。不能够内联那些子类重写的方法。
  2. 找到所有对该方法的调用
  3. 用方法体代替方法调用
  4. 编译并测试
  5. 删除方法定义

    这样重构就结束了!

你可能感兴趣的:(测试)