gpt4 book ai didi

java - 依赖注入(inject)能帮助我们实现松耦合吗?

转载 作者:行者123 更新时间:2023-12-01 17:29:03 26 4
gpt4 key购买 nike

Possible Duplicate:
How exactly does dependency injection reduce coupling?

我认为,依赖注入(inject)作为一个概念封装了松散耦合。说它有助于实现松耦合是否正确?据我了解,如果你设计了一个松耦合的类,那么你可以在它上面实现DI。如果我错了,请帮助我理解并纠正我。

最佳答案

我想说,松散耦合本质上与 DI 无关。如果需要,您可以在完全紧耦合的项目上使用 DI。

松耦合是一个组件与另一个组件的实现细节的隔离。它通常在 java 中通过提供协作者作为接口(interface)的实例而不是具体的类来实现。

我想说的是,在很多情况下,DI 往往会引导人们使用松散耦合的代码,但它并不会强制他们这样做(尽管在像 spring 这样的某些产品中,不使用接口(interface)有很多缺点)。容器还支持连接松散耦合的协作者。此示例在 DI 容器中完美运行,同时紧密耦合。

public class FooService { ... }

public class SomeOtherService {
public SomeOtherService(FooService fooService) {
this.fooService = fooService;
}
}

但是,这是松散耦合的,因为“SomeOtherService”与接口(interface)绑定(bind)。

public interface FooService { ... }

public class SomeOtherService {
public SomeOtherService(FooService fooService) {
this.fooService = fooService;
}
}

插入您最喜欢的连接机制(guice、spring 注解、spring xml、java cdi),但概念是相同的。

维基百科有一篇关于松散耦合的好文章:

http://en.wikipedia.org/wiki/Loose_coupling

关于java - 依赖注入(inject)能帮助我们实现松耦合吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12798812/

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