已经发布了几个关于 dependency injection 的具体问题。 ,例如何时使用它以及有哪些框架。然而,
什么是依赖注入(inject)以及何时/为何应该或不应该使用它?
最佳答案
到目前为止我找到的最好的定义是 one by James Shore :
"Dependency Injection" is a 25-dollar term for a 5-cent concept. [...] Dependency injection means giving an object its instance variables. [...].
有an article by Martin Fowler这可能也很有用。
依赖注入(inject)基本上是提供对象所需的对象(其依赖项),而不是让它自己构造它们。这是一种非常有用的测试技术,因为它允许模拟或删除依赖项。
可以通过多种方式将依赖项注入(inject)到对象中(例如构造函数注入(inject)或 setter 注入(inject))。人们甚至可以使用专门的依赖注入(inject)框架(例如 Spring)来做到这一点,但它们当然不是必需的。您不需要这些框架来进行依赖项注入(inject)。显式实例化和传递对象(依赖项)与框架注入(inject)一样好。
关于design-patterns - 什么是依赖注入(inject)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/130794/