我应该创建这个访问器吗
Should I create this accessors
所以我得到了这个示例布局。
private $_getMilk() = '';
public function getMilk():string {
return $this->_milk;
}
public function setMilk(string $milk) {
$this->_milk = $milk;
}
SetMilk 也用于清空牛奶,这对我来说听起来很奇怪,为什么如果你要牛奶就设置空字符串。
我是否也应该创建函数 emptyMilk. (假设牛奶 属性 经常被调用)
public function emptyMilk() {
$this->_milk = '';
}
单独 emptyMilk()
函数的一个好处是它允许您对空对象使用特殊表示,而不是将其暴露给调用者。
private $is_empty = true;
public function getMilk(): string {
if ($this->$is_empty) {
throw new Exception("Empty milk");
}
return $this->$_milk;
}
public function setMilk(string $milk) {
$this->is_empty = false;
$this->_milk = $milk;
}
public function emptyMilk() {
$this->is_empty = true;
$this->_milk = null;
}
public function gotMilk(): boolean {
return !$this->is_empty;
}
这允许您为 $_milk
使用任何值,而不是将一个值设为特殊值。
所以我得到了这个示例布局。
private $_getMilk() = '';
public function getMilk():string {
return $this->_milk;
}
public function setMilk(string $milk) {
$this->_milk = $milk;
}
SetMilk 也用于清空牛奶,这对我来说听起来很奇怪,为什么如果你要牛奶就设置空字符串。
我是否也应该创建函数 emptyMilk. (假设牛奶 属性 经常被调用)
public function emptyMilk() {
$this->_milk = '';
}
单独 emptyMilk()
函数的一个好处是它允许您对空对象使用特殊表示,而不是将其暴露给调用者。
private $is_empty = true;
public function getMilk(): string {
if ($this->$is_empty) {
throw new Exception("Empty milk");
}
return $this->$_milk;
}
public function setMilk(string $milk) {
$this->is_empty = false;
$this->_milk = $milk;
}
public function emptyMilk() {
$this->is_empty = true;
$this->_milk = null;
}
public function gotMilk(): boolean {
return !$this->is_empty;
}
这允许您为 $_milk
使用任何值,而不是将一个值设为特殊值。