Использование возвращаемого значения метода в качестве аргумента против установки переменной класса в одном методе и использование его в качестве аргумента другого [closed]

0

Мне было интересно, какие плюсы и минусы этих двух стилей программирования, это просто вопрос вкуса или один из желаемых способов?

используя возвращаемое значение метода в качестве аргумента для другого метода:

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);
}
  • 0
    В первом случае вы не резервируете память для orderFilesArray . Второй вариант хорош, когда вам нужно сохранить этот массив для последующего использования.
  • 0
    Это просто стилистическое предпочтение. Вы также можете пропустить аргумент для uploadFilesToPreflight если он всегда использует $this->orderFilesArray .
Показать ещё 3 комментария
Теги:
function
oop

1 ответ

0
Лучший ответ

Вопрос в том, какой должен быть класс? И имеет ли класс состояние?

Если класс должен быть сервисом, где add($data) можно назвать умноженным, и поведение не должно меняться, первый вариант будет лучше.

Если класс имеет состояние и его поведение должно изменяться с помощью add($data) тогда второй вариант прекрасен, но вы должны знать, что это может вызвать побочные эффекты, если класс имеет другие методы, которые полагаются на $this->orderFilesArray.

Чтобы лучше ответить на какой вариант, вам нужно будет опубликовать более широкий контекст класса.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню