我继续读取对象x有依赖关系。有些人说这很糟糕,有些人在某些情况下也没问题,但我不知道它首先意味着什么。我看到了这个:
但是开始时并没有理解依赖概念。该标签实际上给出了一个很好的定义,但希望有一个例子。
答案 0 :(得分:1)
“依赖”可能意味着许多不同的事情,取决于(双关语)在上下文中;)
在这种情况下,它真的意味着“我需要什么特定的'对象'(可能很多)才能完成工作?”
例如,组件需要“打印”的东西。依赖项是“打印”,但请求的对象可以打印到HP Laserjet 9200,或Oki点阵或.pdf文件。
换句话说,您可以在此处将“插件”替换为“依赖”,并保持相同的含义。
'希望有所帮助..
答案 1 :(得分:1)
在谈论依赖注入时,我通常会说类,而不是对象有依赖关系。
如果类A
存在并且可能以某种方式工作,则类B
依赖于类B
。例如,如果类A
调用new B()
,则它依赖于类B
。如果班级B
要消失或更改,您的班级A
可能会中断。
您可以在某些语言中通过允许类依赖于interface
来破坏依赖关系。如果您依赖于接口I
而B
实现I
,则B可以离开并被C
替换,I
也会实现A
和{{1}根本不需要改变。作为一个示例,您可以在操作系统中使用驱动程序,如果您更换磁盘,您可能会获得一个实现“磁盘驱动器”接口的新驱动程序,但您的操作系统仍然以相同的方式与磁盘通信而不知道究竟是什么类型的磁盘。
依赖注入是关于让你依赖于接口而不是类,基本上不是说new B()
,你只是声明你想要一个实现I
的对象,并且会注入一个合适的实现为了你。您的班级A
不必知道班级B
或C
即使存在。