0

我一直在阅读对象 x 具有依赖关系。有些人说这很糟糕,有些人在某些情况下还可以,但我一开始就不明白这意味着什么。我看到了这个:

什么是依赖注入?

但是一开始就不明白依赖的概念。该标签实际上给出了一个很好的定义,但希望有一个例子。

4

2 回答 2

1

“依赖”可能意味着许多不同的东西,取决于(双关语)上下文;)

在这种情况下,它的真正意思是“我需要什么特定的‘对象’(可能有很多)来完成工作?”

例如,一个组件需要“打印”的东西。依赖项是“打印”,但请求的对象可以打印到 HP Laserjet 9200、Oki 点阵或 .pdf 文件。

换句话说,您可以在这里用“插件”一词代替“依赖”,并保持相同的含义。

'希望有帮助..

于 2012-08-29T21:18:32.207 回答
1

在谈论依赖注入时,我通常会说classes,而不是 objects 具有依赖关系。

如果需要类存在并且可能以某种方式工作,则类对类A具有依赖性。例如,如果 class调用了,则它依赖于 class 。如果班级消失或改变,您的班级可能会中断。BBAnew B()BBA

在某些语言中,您可以通过允许类依赖于来打破依赖关系interface。如果你依赖 interfaceIBimplements I, B 可以消失并被C那个也 implements取代I,并且A根本不需要改变。例如,您可以在操作系统中使用驱动程序,如果您更换磁盘,您可能会得到一个实现“磁盘驱动器”接口的新驱动程序,但是您的操作系统仍然以相同的方式与磁盘通信而不知道它到底是什么类型的磁盘。

依赖注入是关于让你依赖接口而不是类,基本上而不是说new B(),你只需声明你想要一个实现的对象,I并且将为你注入一个合适的实现。您的班级A不必知道该班级B甚至C存在。

于 2012-08-29T21:25:34.963 回答