0
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,添加一個對象來遞交它是不是一個壞跡象?
豈不是更好?會有大約50%的'C'實例少。 –
稍後您將如何處理'$ b'? – chelmertz
隨機部分與這個問題有什麼關係?我不認爲這個「if」陳述的存在或缺失對問題的核心有什麼影響:這是不好的設計嗎? – trincot