我知道使用依赖注入/服务定位器设计模式/等。我们正在实现控制反转。但是依赖倒置原则适合什么地方?还是与这两个完全分开?
答案 0 :(得分:0)
例如,如果类A对类B有依赖关系,则通过依赖关系反转重构此依赖关系将导致类A取决于由类B实现的接口B。
简而言之,依赖倒置原则指出,您的高层抽象(例如,A类)和低层抽象(例如,B类)都不应依赖于具体的东西(因为A类在重构之前依赖于B类),但是被中间的抽象层(Interface B抽象)解耦。
依赖倒置用作实现依赖注入的一种方式。例如,在春季,
interface AbstractB {
}
@Component
class ConcreteB implements AbstractB {
}
@Component
class ConcreteA {
@Autowired
// note reference type is AbstractB
private AbstractB concreteB;
}
关于“我们是否也使用DIP实现IOC吗?”,在我看来,这不是必需的,因为我们可以使用ConcreteB类型的Reference自动布线,实现IoC和DI,但违反了DIP。
这能回答您的问题吗?