什么';如果getter和setter总是保持默认值,那么使用它们的意义就在于“;空”;


What's the point of using getters and setters if they will always stay default/"empty"?

如果getter和setter总是保持默认/空,那么使用它们有什么意义?

我所说的默认/空getter和setter的意思是:

public function __get($property)
{
    return $this->$property;
}
public function __set($propertyName, $value)
{
    $this->$propertyName = $value;
}

@j08691的链接非常好地理解了getter和setter背后的理论。神奇的方法很棒,但也有很多缺点。

  • 您的IDE可以使用文档自动完成
  • 您还可以验证数据的类型:

    pulic函数getProduct(Product$Product)

很多时候你是对的,如果你从来没有想过要使用它们,它们是毫无意义的,但它们的目的是确保类属性只使用它们设置和返回,所以即使你的参数是从类中设置的,你也应该使用它们。这样,你就可以保证只有一个地方他们接口。你为什么要问一个地方?如果你决定改变参数的任何内容,比如限制存储在其中的值,或者通过使用数据库来改变它的存储方式,你就可以从直接访问它和一个需要改变的地方中获得抽象,而不是搜索整个类(以及从中继承的任何类)来找到使用该参数的所有地方。

这有道理吗?