在一个方法中使用方法返回值作为参数vs设置类变量,并将其用作另一个方法的参数

时间:2015-01-08 08:49:35

标签: php function oop

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

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

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);
}

1 个答案:

答案 0 :(得分:0)

问题是,该课应该是什么?班级有州吗?

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

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

为了更好地回答最佳选项,您必须发布更广泛的课程背景。