我们真的需要私有变量的getter和setter吗?由于它们仅在对象中使用,因此我无法在其他任何地方使用认为没有必要。
我查看了一些框架,我看到有一个混合。有时有getter/setter有时没有(例如Symfony2框架)。
我的观点是,他们在我的课堂上只占用了太多的代码行。
如果要更改或读取值,则只需要一个二传手或getter。例如,如果您只制作一个 getter,则该值是只读的。
这取决于您的需求,但即使您只是在内部使用它们,请考虑以下方案:
class CalendarEvent{
private $date;
// with type hinting, you are sure to deal with a DateTime instance
public function setDate(DateTime $date){
$this->date = $date;
}
public function getDate(){
return $this->date;
}
}
在所有代码库中保持一致,在我看来,为每个属性设置getter/setter不会有什么坏处。
[占用太多代码行不应该是争论,只要它们有用。
即使私下(在对象内部)如果你想设置/更改几倍的私有属性的值,如果你必须对值进行操作/验证,你可以从 getter/setter 中受益,即一些清理,控制是否为空或类似的东西......它只是一个指导方针,而不是一个规则,必须在每种情况下进行评估。