依赖倒置vs依赖注入vs控制倒置



我试图找到一个关于依赖倒置、DI和IoC之间区别的适当解释,并阅读了许多文章来理解它们之间的区别,如以下文章:

控制反转与依赖注入

https://betterprogramming.pub/straightforward-simple-dependency-inversion-vs-dependency-injection-7d8c0d0ed28e

然而,当我读到一篇关于这个问题的新文章和答案时,我变得更加困惑了。因为,在Spring文档中,还有以下用于IoC的子句:

IoC也被称为依赖注入(DI)

那么,你能简单地解释一下依赖反转、依赖注入和控制反转之间的区别吗?

依赖注入(DI)是一种避免之间强耦合的设计实践类。

示例

interface IB{}
Class B implements IB {}
Class A {
IB ib;
public A(IB ib){
this.ib = ib;
}
}

它被认为是一个依赖注入,因为ib可以是任何实现这个接口的东西。当你想测试类A时,你不需要实例化IB,或者你可以用任何你想要的实例化它。底线是,类A不强依赖于类B(或类B)

控制反转(IoC)是一个概念,在这个概念中,开发人员将实例化控制交给框架(例如Spring)。因此,在编写良好的代码中,您不会看到显式调用构造函数,因为框架会为您这样做。IoC使用DI设计实践。

如果你需要更好的说明,请告诉我

最新更新