以查询代替临时变量

1.什么是Replace Temp with Query

function totalMoney(){
    $result = ($this->price)*($this->nums); //这个result就是临时变量
    if($result>60) return $result*0.9;
    else return $result;
}



//用查询替代临时变量
function getPrice(){
    return ($this->price)*($this->nums);
}
function totalMoney(){
    if(getPrice()>60) return getPrice()*0.9;
    else return getPrice();
}

2.这样做的好处是什么

临时变量的问题在于:它们是暂时的,而且只能在所属函数内使用。由于临时变量只有在所属函数内才可见,所以它们会驱使你写出更长的函数,因为只有这样你才能访问到想要访问的临时变量。如果把临时变量替换为一个查询式(query method),那么同一个class中的所有函数都将可以获得这份信息。这将带给你极大帮助,使你能够为这个编写更清晰的代码。局部变量会使代码难以被提炼,所以你应该尽可能把它们替换为查询式。

以后如果你要改变这个变量的赋值,就不用满大街找这个$result是在哪里被赋值的了,而是直接找到function getPrice。

原文地址:https://www.cnblogs.com/justlikeheaven/p/2778490.html