重新组织函数 - Replace Temp with Query

简述

你的程序以一个临时变量保存某一表达式的运算结果,将这个表达式提炼到一个独立函数中。

double basePrice = _quantity * _itemPrice;
if (basePrice > 1000)
    return basePrice * 0.95 ;
else 
    return basePrice * 0.98 ;

改为

if (basePrice() > 1000)
    return basePrice() * 0.95 ;
else 
    return basePrice() * 0.98 ;

double basePrice() {
double basePrice = _quantity * _itemPrice;
}

动机

  • 去掉临时变量,作为一个独立函数,能让类中函数都能使用这个函数,会带来极大的好处
  • 往往是运用Extract Method之前必不可少的步骤

做法

  • 找出只被赋值一次的临时变量,如果赋值多次考虑Split Temporary Varaiable分割成多个变量
  • 临时变量右侧的表达式提炼到一个独立函数中,先声明private,如果提炼的函数修改对象内容,就要对它进行Separate Query from Modifler
  • 编译测试
  • 在该临时变量上实施Inline Temp

你可能感兴趣的:(重新组织函数 - Replace Temp with Query)