gpt4 book ai didi

dependency-injection - 依赖注入(inject)接口(interface)与具体类?

转载 作者:行者123 更新时间:2023-12-04 23:18:31 25 4
gpt4 key购买 nike

我对 DI 中的几点感到困惑。让我解释:
首先,依赖注入(inject)是否必须遵循依赖倒置原则?
如果是这样,我们不能将具体的类实例作为依赖注入(inject)。因为 ,这个操作违反了 DIP。
让我通过一个例子问我的问题:

public class Client {

private Service service; // Service is concrete class !

Client(Service service) {this.service = service;}
}

所以在这个例子中,依赖和依赖都是具体的。尽管这违反了 DIP 原则,但我们可以说这是依赖注入(inject)吗?在我看来,是的,我们可以。因为 DI 是所有对象的创建,而这些代码履行了真正的职责,并从依赖项中获取创建对象的操作。但同时它又不遵循 DIP。我在等你的想法:)
先谢谢 friend 。

最佳答案

Does Dependency Injection has to follow Dependency Inversion Principle?



不,它没有。依赖注入(inject)只是从外部将依赖注入(inject)组件的做法,而不是让组件创建或请求这些依赖。

所以虽然你可以在不遵循依赖倒置原则的情况下应用依赖注入(inject),但遵循 DIP 通常是一个很好的做法,因为 DIP 提倡松散耦合,这使得替换、装饰、拦截和模拟依赖关系变得更容易,从而增加了可测试性、灵 active 和可维护性。

关于dependency-injection - 依赖注入(inject)接口(interface)与具体类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33936338/

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