gpt4 book ai didi

design-patterns - 我应该选择依赖注入(inject)还是工厂模式

转载 作者:行者123 更新时间:2023-12-04 02:45:33 25 4
gpt4 key购买 nike

我正在调查依赖注入(inject)。而且我发现:引用的大多数依赖注入(inject)的例子,我们也可以使用工厂模式来解决。

您能帮我比较一下 DI 和工厂模式之间的优缺点吗?我应该总是选择依赖注入(inject)而不是工厂模式吗?还是取决于指定的项目?

我如何知道最佳解决方案是什么?什么是最佳做法?

最佳答案

让我们看看它们之间的区别。

使用 DI,对象在外部创建并“注入(inject)”以供客户端对象使用。注入(inject)通常通过构造函数完成。

但是,在复杂的情况下,通常会注入(inject)一个 DI 容器来创建依赖对象,包括所有的子依赖。所以它看起来像抽象工厂!

使用抽象工厂,一个具体工厂类的实例被注入(inject),依赖对象由客户端对象实例化。

所以 DI 和抽象工厂几乎相同,当您考虑到在这两种情况下,工厂对象都被传递给客户端以使其能够创建其依赖项。

仅在简单的情况下,依赖对象在外部创建并传递给客户端对象。这就是策略模式的工作原理。

由于 DI 容器现在如此流行,并且在框架中得到如此广泛的使用,它们已经有效地取代了抽象工厂,至少作为一种经常被提及的模式。 DI 容器是比抽象工厂想象的要复杂得多的实体(我相信)。

所以没有最佳实践!

关于design-patterns - 我应该选择依赖注入(inject)还是工厂模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833124/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com