interface DoSomething
{
public function do();
public function getId();
}
class DoSomethingGood implements DoSomething
{
private $dependency;
private $id;
public function __construct($id, $dependency)
{
$this->dependency = $dependency;
$this->id = $id;
}
public function do()
{
if ($this->dependency->isActive()) {
return true;
}
return false;
}
public function getId()
{
return $this->id;
}
}
class DoSomethingBad implements DoSomething
{
private $id;
public function __construct($id)
{
$this->id = $id;
}
public function do()
{
return false;
}
public function getId() {
return $this->id;
}
}
我应该在这里使用组合还是继承会更好?不同之处在于这些类如何实现 do()
方法。第一个类具有所需的依赖项和一些内部逻辑来决定,而另一个类则更简单。
最佳答案
继承是一种语义关系。不是组成。一个常见的错误是使用继承而不是组合来分解代码。
关于php - 组合或继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36755186/