当然,没有二传手的吸气手总是有意义的。只读属性。明白了,没问题。
但是我现在正在维护一些代码,但是那里有安装者,但没有吸气剂,我对此感到困惑。
我有什么理由对添加吸气剂犹豫不决吗?我很难想象一个设置,可以将值更改为调用者想要的任何值(在setter中没有健全性检查),但是告诉调用者当前值是什么并不好。
代码恰好是PHP,如果由于某种原因这很重要。
答案 0 :(得分:2)
有很多有效的案例。
考虑一下(原谅我的PHP - 它的垃圾):
class User {
protected $password;
public function setPassword($newPassword) {
$this->password = sha1($newPassword);
}
public function verifyPassword($against) {
return $this->password == sha1(against);
}
}
我们不希望密码哈希或以其他方式在对象外部可见,但我们不希望在对象中存储未散列的值。我们也不想破解封装以进行密码验证。
答案 1 :(得分:0)
有一种观点认为,任何不需要满足要求的东西都不应该被编码。我想有些人甚至会将这种哲学扩展到吸气者和制定者身上。
答案 2 :(得分:0)
正如在Do write-only properties have practical applications?中指出的那样,为随机数生成器设置种子是一个非常简单的例子,让没有getter的setter完全有意义。