我基本上想知道使用构造函数依赖注入和在构造函数中实例化对象之间的主要区别。
例如:
// Creating instance in the constructor
public Class MyService
{
private Foo _foo;
MyService()
{
_foo = new Foo();
}
}
// Injecting in the constructor
public Class MyService
{
private Foo _foo;
MyService(Foo _foo)
{
_foo = _foo;
}
}
现在,据我读过的文章/博客,上面的代码片段说存在紧密耦合,而在 DI 版本中存在低耦合,现在我知道耦合的概念,但我无法理解以下示例提供。
我想到的另一个区别是生命周期的区别...... 但我需要有人向我澄清这一点。另外,如果我在 DI 时不使用接口,我真的能获得依赖注入的好处吗?