Что считается лучшим методом написания классов ООП, когда дело доходит до внутреннего использования свойства.
Рассмотрим следующий класс:
_foo;
}
protected function _doSomething()
{
$foo = $this->_foo;
$result = null;
// ...
return $result;
}
}
Как вы видите, я использую свойство _foo в _doSomething (), хотя подкласс может переопределить getFoo (), возвращая вычисленное значение, не сохраненное обратно в _foo; это недостаток.
Что мне делать?
Оба варианта являются водонепроницаемыми, однако меня серьезно беспокоят все дополнительные вызовы функций, поэтому я предпочитаю использовать вариант 1, однако вариант 2 будет более "истинным ООП" imho.
Также прочтите http://fabien.potencier.org/article/47/pragmatism-over-theory-protected-vs-private , где также предлагается вариант 2: /
Другой связанный вопрос; Если свойство имеет установщик, должно ли это свойство быть частным, заставляя конечных разработчиков использовать его в подклассах, или если это неписаное правило, программист должен установить допустимое значение свойства?