0
在TrainBoardingCard我们setTrainCode可以使用$ this-> trainCode = $ trainCode在构造函数中,或者我们总是使用setTrainCode像$ this-> setTrainCode($ trainCode );因为它将来可能有一些逻辑。私人财产访问与构造函数的setter与构造函数的直接访问
对于这两种情况有什么优点和缺点?请让我们知道你的偏好和理由。
class TrainBoardingCard extends BoardingCard
{
/**
* @var string
*/
private $trainCode;
/**
* @param string $trainCode
*/
public function __construct(string $trainCode)
{
$this->trainCode = $trainCode;
}
/**
* @return string
*/
public function getTrainCode(): string
{
return $this->trainCode;
}
/**
* @param string $trainCode
*/
public function setTrainCode(string $trainCode)
{
$this->trainCode = $trainCode;
}
}
感谢teresko你有用的信息, –
有一点仍不清楚我的,里面的构造,我们可以做到这一点$这个 - > trainCode = $ trainCode;或者应该总是做$ this-> setTrainCode($ trainCode);如果我们有二传手(可能二传手可以有一些逻辑在未来可能不会)。 –
如果你在构造函数中传递的是依赖项(如在其他对象中),那么这不是必需的。如果你传递值(或值对象),那么使用setter将是一个好主意。 –