首页 > 解决方案 > 抽象类的依赖注入

问题描述

依赖注入是否仅指接口的情况?假设我们有参数声明为接口的类的构造函数,因此我们可以在创建类时传递实现。当我们创建一个抽象类和一个扩展它的类时,我们也可以这样做。第二种情况是否也可以称为依赖注入或者这种技术仅指接口使用?

标签: javadesign-patternsdependency-injection

解决方案


依赖注入根本没有具体的接口处理。简单来说,它只是声明,在运行时根据需要注入该死的依赖项,而不受内置编译时依赖项的控制。

它类似于这样的事情。我购买了带有我想要的发动机的汽车,而没有购买带有内置发动机(他们想要的发动机)的汽车。因此,这完全与对象创建的运行时可配置性有关。

因此,无论您注入的参数类型是接口、抽象类还是具体类,都没有关系。

但无论如何,尽管它与 DI 无关,但如果您使用接口或抽象类而不是具体的类类型,您可以在代码中引入更多的泛化(通过多态性)。


推荐阅读