使用方法 return 值作为参数与在一个方法中设置 class 变量并将其用作另一个方法的参数

Using method return value as argument vs setting class variable in one method and using it as an argument of another

我想知道这两种编程风格的优缺点是什么,这只是一种品味问题还是一种理想的方式?

使用一个方法return值作为另一个方法的参数:

public function add($data) 
{
    $this->uploadFilesToPreflight(
        $this->addOrderFilesToDB(
            $data['shop'],
            $data['filesData']
        )
    );
}

VS 在方法 1 中设置受保护的 class 变量并将其用作方法 2 的参数:

public function add($data) 
{
    //does some stuff and sets $orderFilesArray
    $this->addOrderFilesToDB($data['shop'], $data['filesData']);

    $this->uploadFilesToPreflight($this->orderFilesArray);
}

问题是,class 应该是什么? class 有状态吗?

如果 class 应该是一个服务,其中 add($data) 可以被多次调用并且行为不应该改变第一个选项会更好。

如果 class 有一个状态,并且它的行为应该通过调用 add($data) 来改变,那么第二个选项是好的,但你必须意识到这可能会导致副作用,如果class 有其他依赖于 $this->orderFilesArray 的方法。

要更好地回答最佳选项,您必须 post 更广泛的 class 上下文。