假设我有一个A类,它有另一个B类作为其属性。
当A类需要对B类进行修改时,最好使用getter方法进行修改或直接访问属性进行访问吗?
以此为例。
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 :(得分:0)
基于意见的问题在堆栈溢出方面做得不好,但你真的应该使用getter和setter。
这种方法是更好的编程实践,原因有几个。
- 您可以轻松使用模拟课程
- 如果您需要更新类以响应属性更改(或将来可能)。例如:setSpouse函数可以更新配偶'和' relationshipStatus'属性
- 如果您想进行重构