Использование свойства против getter / setter в собственном классе объекта

Скажем, у меня есть класс A, у которого есть другой класс B в качестве его свойства.

Когда классу A нужно внести изменения в класс B, лучше ли использовать метод get для внесения изменений или получить доступ к свойству напрямую для доступа?

Так что в качестве примера.

public class Car() {
private $engine;

public function __constructor() {
$this->$engine = new Engine();
}

public function getEngine() {
return $this->engine;
}

public function replaceEngine() {
// Should I use
$this->engine->change();

// Or should I use
$this->getEngine()->change();
}
}

Я думаю, используя метод getter, чтобы, если мне пришлось заглушить методы Class Engine, я мог бы посмеяться над тем, что возвращает getEngine (), и удалить зависимость.

Но я хотел бы видеть больше мнений по этому вопросу.

Спасибо!

0

Решение

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

Этот метод является лучшей практикой программирования по нескольким причинам.

-Вы можете легко использовать фиктивные классы

-Если вам нужно обновить класс в ответ на изменение атрибута (или, возможно, в будущем). Например: функция setSpouse может обновлять атрибуты ‘spouse’ и ‘relationsStatus’

-Если вы когда-нибудь хотите сделать рефакторинг

0

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

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

По вопросам рекламы [email protected]