依存性注入の概念はなんとか理解できましたが、依存性反転がどこで行われるのかわかりません。
たとえば、このクラスには密接な依存関係があります。
class Man
{
public function eat()
{
$food = new Food();
$food->unpack();
$food->use();
}
}
しかし、DI の概念を適用すると、次のようになります。
class Man
{
public function eat($food)
{
$food->unpack();
$food->use();
}
}
ただし、どのような場合でも、Man
は依然としてに依存するFood
ため、ここでは依存関係の逆転は見られません。
唯一の違いは、誰Food
がテーブルに置くかです。
ですから、反転原理がどこでどのように適用されるのかを明確にしてください。