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()
方法。第一類具有它所需要的依賴性和一些內部邏輯來決定,而另一類更簡單。組成或繼承
驚人的洞察力,請把一些鏈接到書,你在你的個人喜歡的文章,我真的不知道有什麼可以做一個這樣想。 – Arjang
@Arjang看看面向對象設計的基本原則:[SOLID](https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)) – pid