在类成员上操作而不是将参数传递给方法

时间:2016-05-11 01:27:26

标签: php function oop methods

这是我一直试图找到一个好的约定,但是在某些特殊情况下,我想要将变量传递给方法,而不仅仅是直接在类成员上操作,反之亦然?例如,假设我有一个简单的类,只计算某事物的总价格(原谅超级蹩脚的例子):

class TaxCalculator
{
    protected $tax_rate = 0.07;
    protected $price = 10;

    public function callCalculate()
    {
        $this->calculate();
    }

    public function calculate()
    {
        return $this->price * ( 1 + $this->tax_rate );
    }
}

我知道这不是一个真实世界的例子,但在这种情况下,主要关注的是callCalculate()方法。你通常会这样做,将参数传递给calculate()方法,还是依赖?或者这可能是我实际上不需要班级成员的情况?

我发现自己有时会回溯,因为感觉我错过了某些东西,比如我传入参数时可能会重复使用功能。

任何反馈都会很棒。提前谢谢。

1 个答案:

答案 0 :(得分:2)

这个问题在https://softwareengineering.stackexchange.com/questions/146508/passing-member-variable-as-a-method-parameter有一些很好的答案,尽管最受欢迎的答案不是我的最爱。