这可能是一个非常愚蠢的问题,因为我正在学习这个。
我对此有疑问,
例如,我有三个类A
,B
和C
班级D
需要所有三个班级。
所以我可以声明我们的class D
将另一个类对象作为类参数或者可以注入它们,
class D(a: A, b: B, c: C)
或
class D @Inject()(a: A, b: B, c: C)
他们都允许我使用A,B和C类的对象。
两种方法之间究竟有什么区别?我们什么时候应该使用哪一个?
提前致谢:)
答案 0 :(得分:1)
我不是专家,但@Inject注释与像Guice这样的依赖注入框架有关。如果可以,Guice将初始化A,B和C.恕我直言,大多数这个框架的问题是他们可以在运行时抛出布线异常(容器是一个非常黑暗的世界:P)。尝试使用,至少如果你正在学习,第一种方法。它将帮助您专注于学习语言基础知识,而不是与DI框架作斗争,编译器将为您提供很多帮助。我建议您为大型项目提供DI框架。