Мне было интересно, какие плюсы и минусы этих двух стилей программирования, это просто вопрос вкуса или один из желаемых способов?
используя возвращаемое значение метода в качестве аргумента для другого метода:
public function add($data)
{
$this->uploadFilesToPreflight(
$this->addOrderFilesToDB(
$data['shop'],
$data['filesData']
)
);
}
VS устанавливает защищенную переменную класса в методе 1 и использует ее как аргумент метода 2:
public function add($data)
{
//does some stuff and sets $orderFilesArray
$this->addOrderFilesToDB($data['shop'], $data['filesData']);
$this->uploadFilesToPreflight($this->orderFilesArray);
}
Вопрос в том, какой должен быть класс? И имеет ли класс состояние?
Если класс должен быть сервисом, где add($data)
можно назвать умноженным, и поведение не должно меняться, первый вариант будет лучше.
Если класс имеет состояние и его поведение должно изменяться с помощью add($data)
тогда второй вариант прекрасен, но вы должны знать, что это может вызвать побочные эффекты, если класс имеет другие методы, которые полагаются на $this->orderFilesArray
.
Чтобы лучше ответить на какой вариант, вам нужно будет опубликовать более широкий контекст класса.
orderFilesArray
. Второй вариант хорош, когда вам нужно сохранить этот массив для последующего использования.uploadFilesToPreflight
если он всегда использует$this->orderFilesArray
.