【发布时间】:2019-02-25 23:49:04
【问题描述】:
如果我更改以下代码,这是否是依赖注入
class Needer
{
Needed obj;
AnotherNeeded obj2;
public Needer()
{
obj = new Neede();
obj2 = new AnotherNeede();
}
}
到此代码
class Needer
{
Needed obj;
AnotherNeeded obj2;
public Needer(Needed param1, AnotherNeeded param2)
{
obj = param1;
obj2 = param2;
}
}
【问题讨论】:
-
这些例子都不是依赖注入。您应该在构造函数中使用接口/抽象作为参数,然后将这些参数值分配给您的字段/属性。依赖注入的重点是永远手动新建一个依赖。看看你的第二个例子,
param1和param2永远不会去任何地方,你完全忽略它们...... -
完全没有,这里连构造函数参数都没有赋值给变量
-
@maccettura 和 mbharanidharan88!伙计们请稍等……那是一个复制粘贴,从来没有打算这样做。我已经用正确措辞的代码更新了我的问题
-
有趣的 cmets。是的,示例 2 在技术上是依赖注入,但采用接口比采用具体类型更好。