【问题标题】:Dependency Injection: should dependent objects passed as constructor args or not?依赖注入:依赖对象是否应该作为构造函数参数传递?
【发布时间】:2011-01-16 10:27:33
【问题描述】:

这里的视频 http://code.google.com/p/google-guice/

它解释说它应该。

OscarRyz 的说法恰恰相反 How to explain dependency injection to a 5-year-old?

所以我现在很困惑。

【问题讨论】:

    标签: java frameworks dependency-injection


    【解决方案1】:

    我个人更喜欢使用构造函数可以自然定义所有必填字段以及一旦设置无法更改的字段这一事实。你可以对 setter 做同样的事情,但没有直接的语言支持。

    虽然我更喜欢对强制字段和最终字段使用构造函数,但我不认为这是依赖注入所特有的。

    【讨论】:

    • +1 构造函数注入意味着强制依赖。属性注入意味着可选依赖(这是一个奇怪的概念,因为它往往会破坏 SRP)。
    • 是的,我真的更喜欢构造函数。
    【解决方案2】:

    没有简单的答案。这取决于实际情况。查看 Martin Fowler 文章中的“构造函数与 Setter 注入”部分:

    http://www.martinfowler.com/articles/injection.html

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 2011-02-02
      • 2014-09-23
      • 1970-01-01
      • 2019-04-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多