构造函数注入的主要好处是它允许您的字段标记为final.例如:
class Foo { private final Bar _bar; Foo(Bar bar) { _bar=bar; } }
以下页面列出了专业人士和骗子:Guice Best Practices:
方法注入
+不是现场注入
+只适用于某些奇怪边缘情况的东西
构造函数注入
+菲尔兹可以是最终的!
+注入不可能被跳过
+一目了然易于查看依赖项
+这就是建筑的概念
- 无可选注射
- 当DI库本身无法进行实例化时无用
- 子类需要"了解"他们的超类所需的注射
- 对于仅"关心"其中一个参数的测试不太方便