什么是依赖倒置原则?为什么它很重要?
发布于 2015-07-10 00:49:17
基本上它是这样说的:
类应该依赖于抽象(例如接口、抽象类),而不是具体的细节(实现)。
发布于 2009-01-20 20:06:37
这里的其他人已经给出了好的答案和好的例子。
DIP之所以重要,是因为它确保了OO原则“松散耦合设计”。
你的软件中的对象不应该进入一个层次结构,其中一些对象是顶层对象,依赖于低级对象。低级对象中的更改将波及到您的顶层对象,这使得软件对于更改非常脆弱。
您希望您的“顶级”对象非常稳定,并且不容易发生变化,因此您需要颠倒依赖关系。
发布于 2008-09-15 12:59:57
依赖反转的目的是为了使软件可重用。
其思想是,它们依赖于一些抽象的接口,而不是相互依赖的两段代码。然后,您可以在没有其他组件的情况下重用这两个组件。
最常见的实现方式是通过控制反转(IoC)容器,比如Java中的Spring。在这个模型中,对象的属性是通过XML配置来设置的,而不是让对象去寻找它们的依赖关系。
想象一下这个伪代码。
public class MyClass
{
public Service myService = ServiceLocator.service;
}
MyClass直接依赖于Service类和ServiceLocator类。如果你想在另一个应用程序中使用它,它需要这两者。现在想象一下..。
public class MyClass
{
public IService myService;
}
现在,MyClass依赖于单个接口,即IService接口。我们让IoC容器实际设置该变量的值。
因此,现在,MyClass可以很容易地在其他项目中重用,而不会带来其他两个类的依赖。
更好的是,您不必拖动MyService的依赖关系,以及这些依赖关系的依赖关系,并且...好吧,你明白我的意思了。
https://stackoverflow.com/questions/62539
复制相似问题