圣诞大减价开始了!

内联临时

问题

你有一个临时变量,它被分配一个简单表达式的结果,仅此而已。

解决方案

用表达式本身替换对变量的引用。

之前
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被用来缓存重复使用多次的昂贵操作的结果。因此,在使用这种重构技术之前,请确保简单性不会以牺牲性能为代价。

如何重构

  1. 找出所有使用该变量的地方。而不是变量,使用已分配给它的表达式。

  2. 删除变量的声明及其赋值行。

Baidu
map