所以我得到了这个示例布局。
private $_getMilk() = '';
public function getMilk():string {
return $this->_milk;
}
public function setMilk(string $milk) {
$this->_milk = $milk;
}
SetMilk还用来清空牛奶,这听起来很奇怪,如果你要牛奶,为什么要设置空字符串。
我是否应该创建函数emptyMilk。 (因为牛奶属性被称为很多)
public function emptyMilk() {
$this->_milk = '';
}
答案 0 :(得分:0)
单独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
的任何值,而不是使一个值特殊。