我很苦恼于依赖注入容器的想法。依赖注入如何知道要传递哪些变量?
不知道如何解释,但我会尝试用几个例子:
class foo
{
public function __construct(\Somenamespace\Bar $bar, $x)
{
}
}
的DIC怎么会知道什么“X”会是谁?
如果我们走得更远,看看酒吧课。 DIC可以用反射创建Bar没有问题。
namespace \Somenamespace;
class bar
{
public function __construct(\SomethingElse\Tap $tap, $y)
{
}
}
酒吧想要水龙头,龙头也可以由DIC找到,但它怎么知道'y'?
如果我们创建了水龙头。
namespace\SomethingElse;
class tap
{
public function __construct($amountOfTaps)
{
}
}
DIC如何知道水龙头量或其他变量?
编辑:
同样的问题确实为如果微调后的类型是一个接口或一个抽象类。 DIC如何弄清楚他需要创建什么?
这取决于DIC是如何实现的。你在使用Symfony吗? –
它将在配置中为DIC – Orangepill
@ChrisHanson指定不具有任何DIC特定。只是想知道它是如何完成的。特别是当命名空间发挥作用时。因为他们怎么抬头? – John