class A
{
public function doIt($c)
{
if (rand(0,1) == 1) // this means, we dont know if we need to create the object or not
{
$b = new B($c);
}
}
}
class B
{
}
class C
{
}
$c = new C();
$a = new A();
$a->doIt($c);
問題は、A
は、$c
、または約C
を知っている必要はありません。それでも、B
で処理するには、それを渡す必要があります。それは悪い兆候ではありませんか? A
はB
とは関係がないので、私はそうだと思います。DI、それを手渡すだけのオブジェクトを追加するのは悪い兆候ですか?
はそれがより良いと思いませんか? 'C'のインスタンスは約50%少なくなります。 –
後で '$ b'で何をしますか? – chelmertz
ランダムな部分は質問と何を関係していますか?私はそのif文の有無が問題の核心に何らかの違いをもたらすとは考えていません。それは悪い設計ですか? – trincot