如果我遵循类设计的依赖注入原则,我应该确保我的类不尝试在我的类中实例化它的依赖关系,而是通过构造函数询问对象。依赖注入是否意味着没有内联初始化?
这样,我在我的类提供,而单元测试它依赖的控制。这我明白。
但我不是肯定的是,这是否意味着随后依赖注入原理的好一流的设计意味着它的领域不应该被初始化内联?我们应该完全避免内联初始化来生成可测试代码吗?
编辑
哪个更好1或2?
public class Car {
private Tire tire = new Tire(); //
}
public class Car {
private Tire tire;
public Car(Tire tire) {
this.tire = tire
}
}
这显然取决于类型的字段。当你只需要在类中使用“基本”类型时,如“Number”,日期相关(java.time)类或例如“StringBuilder”是没有意义的。 – Tom
“内联初始化”是什么意思?这些字段是由类本身在构造函数中初始化的还是什么? – lexicore
*我应该确保我的类不尝试在我的类中实例化其依赖关系*:绝对如此。不过,这正是你的第一个片段。所以你有你的答案。依赖性必须从课堂外提供。这显然不是你的第一个片段的情况。 –