2

我没有找到类似的问题,所以如果它已经存在,我深表歉意。

在我的系统中,我想要一些函数库来简化整个系统中的许多任务。那可能是验证电子邮件。如果我可以让一个函数来做,就没有理由每次都写完整的正则表达式,所以我只需要在一个地方进行更改和修复错误。

假设我编写了一个名为 Files_Tools 的类。

我可以通过将此类的实例依赖注入到需要此类函数的对象中来使其工作。但我也可以使用静态函数编写 Files_Tools 类,并使用范围解析运算符访问它们。但正如我所了解的,关于 DI(依赖注入)的主要事情之一是避免这种“全局使用”。所以我的逻辑告诉我采用 DI 方法。然而,我这样做仍然感觉不“正确”。

所以我的问题是——什么被认为是为系统创建工具集的最正确方法?首先,是把它做成一个类,而不是简单的函数吗?然后,如果它真的是一个类是要走的路,我应该瞄准 SRO 还是 DI?

我知道这个问题可能没有一个明确的答案,但我想知道我是否完全偏离轨道或走向许多其他编码人员也会做的事情。

提前致谢 :)

4

1 回答 1

2

DI 可以更轻松地对您的类和方法进行单元测试,而无需依赖注入的类……您可以模拟注入的对象并根据您的测试操作其返回。范围解析为您留下了这种依赖关系,因此测试不会完全隔离。

我早期的许多项目都使用静态类来实现此类功能,并且在 6 年后尝试为它们编写单元测试现在是一件真正的苦差事,因为我没有使用 DI。

于 2012-05-19T11:10:14.373 回答