可以将依赖注入视为工厂方法模式的替代吗?

时间:2018-04-30 18:35:21

标签: java design-patterns dependency-injection

根据维基百科

  

在基于类的编程中,工厂方法模式是一种创建模式,它使用工厂方法来处理创建对象的问题,而无需指定将要创建的对象的确切类。

在依赖注入中(我有Spring的经验,所以这可能在那个上下文中),我们为使用接口定义的每个类都有变量,并将具体的实例保留给DI框架。

我是否遗漏了这些内容,还是可以互换使用?

1 个答案:

答案 0 :(得分:1)

  

可以将依赖注入视为工厂的替代品   方法模式?

是的,但依赖注入甚至超越了 因此,您应该将其视为设计方面的改进。

这两种方式提供非常紧密的设施是正确的 但请注意,依赖注入原则与原始工厂模式有所不同:依赖性反转原则 我非常喜欢好莱坞的比喻来说明:“不要打电话给我们,我们会打电话给你” 它是必不可少的,因为它减轻了客户端类查找其依赖关系:框架执行/(“调用”以收回隐喻)它为您。 因此,客户不再具有与工厂结构的耦合(以及与之相关的锅炉板代码),只需要定义它们的依赖关系,这些将被注入。