我不应该注入哪种依赖关系?

时间:2020-06-03 09:13:21

标签: design-patterns dependency-injection

我有一个简短的问题。有什么不应该由DI注入的依赖项吗?昨天我在队友的请求请求注入类中看到只有静态方法(典型的函数方法)。我开始怀疑是否应该注射它。该类不会干扰任何外部服务。我找不到明确的答案。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

依赖注入将创建对象的责任委托给其他人,如果不应创建任何对象(例如utils),或者它不是您的API的一部分(例如记录器),则不需要DI。 但是我建议您使用TDD方法重新考虑一下,如果您是先编写测试,那么这种依赖关系真是让人头疼吗?如果是,那么您应该注入它。

答案 1 :(得分:1)

首选注入抽象,仅因为注入具体的依赖项不会增加价值。注入具体的依赖关系不会反转控制流,不会解耦模块,也不会促进多态性。

当然,“依赖倒置原则”建议不要完全依赖于凝结,关于utility classes are evil是否存在争议。但暂时忽略该主题,我认为有一些合理的答案herehere

相关问题