gpt4 book ai didi

java - 什么是依赖注入(inject)?

转载 作者:行者123 更新时间:2023-12-02 14:43:38 27 4
gpt4 key购买 nike

Possible Duplicate:
What is Inversion of Control?

我真的对依赖注入(inject)的概念感到困惑。

我对软件领域非常陌生,我对以下场景有疑问。假设我需要一个 Json我的 java 代码的解析器类,所以我添加 Json使用classpath执行java程序时的jar争论。我的程序依赖Json jar,这意味着我在这里进行依赖注入(inject)

另一个例子是使用 import声明确实解决了用户类依赖于其他类的问题(例如java中的Date),所以所有这些都是依赖注入(inject)的概念?

我在哪里提出这个概念。

提前致谢。

最佳答案

这更多地与如何将组件链接在一起有关。例如在上面,我希望您将解析器注入(inject)到需要它的类中。例如

而不是:

public class MyParserUsingClass {
...
public MyParserUsingClass() {
this.parser = new Parser();
}
}

你会这样做:

public class MyParserUsingClass {
...
public MyParserUsingClass(Parser injectedParser) {
this.parser = injectedParser;
}
}

为什么要这样做?使用解析器的类并不真正关心解析器来自哪里,并且应该真正使用接口(interface)而不是具体实例。通过注入(inject)解析器,您可以根据情况提供不同的实例,模拟它以进行测试等。否则该类只会在内部创建它,您将无法控制它。这对于可配置组件、通过网络通信的组件、重量级组件等尤其重要。

关于java - 什么是依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722549/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com