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將是一個好主意。 –