依赖注入是否仅涉及接口的情况?假设我们有类的构造函数,其参数声明为Interface,因此我们可以在创建类时传递实现。当我们创建一个抽象类和一个扩展它的类时,我们可以做同样的事情。第二种情况是否也可以命名为Dependency Injection,或者此技术仅涉及接口使用?
答案 0 :(得分:0)
依赖注入根本没有特定的接口处理。简单来说,它只是声明,在运行时注入该死的依赖 而不受 内置编译时依赖项的控制 强>
这类似于此类似的东西。我购买了一辆带有我需要的发动机的汽车而没有购买内置发动机(他们想要的发动机)的汽车。所以关键是对象创建的运行时可配置性。
因此,无论您是将参数类型注入接口,抽象类还是具体类,都无关紧要。
但是无论如何它与DI没有业务关系,如果你使用的是接口或抽象类而不是具体的类类型,你可以在代码中引入更多的泛化(通过多态)。