内联临时
问题
你有一个临时变量,它被分配一个简单表达式的结果,仅此而已。
解决方案
用表达式本身替换对变量的引用。
之前
boolean hasDiscount(Order Order) {double basePrice = Order .basePrice();返回basePrice > 1000;}
后
boolean hasDiscount(Order Order){返回Order . baseprice () > 1000;}
之前
bool HasDiscount(Order Order) {double basePrice = Order . basePrice ();返回basePrice > 1000;}
后
bool HasDiscount(Order Order){返回Order . baseprice () > 1000;}
之前
$basePrice = $anOrder->basePrice();返回$basePrice > 1000;
后
返回$anOrder->basePrice() > 1000;
之前
def hasDiscount(order): basePrice = order.basePrice()返回basePrice > 1000
后
def hasDiscount(order):返回order. baseprice () > 1000
之前
hasDiscount(order: order): boolean {let basePrice: number = order.basePrice();返回basePrice > 1000;}
后
hasDiscount(order: order):布尔{返回order. baseprice () > 1000;}
为什么重构
内联局部变量几乎总是用作用查询替换Temp或者是为提取方法.
好处
- 这种重构技术本身几乎没有任何好处。但是,如果将方法的结果赋给变量,则可以通过删除不必要的变量来略微提高程序的可读性。
缺点
- 有时看似无用的temp被用来缓存重复使用多次的昂贵操作的结果。因此,在使用这种重构技术之前,请确保简单性不会以牺牲性能为代价。
如何重构
找出所有使用该变量的地方。而不是变量,使用已分配给它的表达式。
删除变量的声明及其赋值行。