Должен ли я создать этот аксессор

Итак, я получил этот пример макета.

private $_getMilk() = '';

public function getMilk():string {
return $this->_milk;
}

public function setMilk(string $milk) {
$this->_milk = $milk;
}

SetMilk также используется для слива молока, что странно для меня, зачем устанавливать пустую строку, если вы просите молоко.

Я должен вместо этого также создать функцию emptyMilk. (asume молочная собственность получает название много)

public function emptyMilk() {
$this->_milk = '';
}

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 вместо того, чтобы делать одно значение особенным.

0

Другие решения

Других решений пока нет …