Zom*_*ies 8 c# java design-patterns dependency-injection
对于我看到的所有DI示例,我总是将依赖关系看作其他类,比如服务.但是,对象可能在很大程度上和/或关键地依赖于诸如字符串和资源包装器(文件/路径/ URI/URL,而不是整个大值字符串/文档或读取器)之类的配置值.
注意,这仅仅是关于Java或C#语法的DI设计模式,而不是任何特定的DI框架如何处理它.
例如,假设我有这个类返回一个String(相对路径,基于一些不起眼的实现逻辑).它(而不是它的各种实现者)对"projectLocation"具有配置/初始化依赖性,因为用户可以在他们的机器上拥有各种项目,并且该类将在调用时基于给定项目执行某些逻辑.
public abstract class PathResolver {
protected File projectFilesLocation;
public RoutinePathResolver(File projectFilesLocation) {
this.projectFilesLocation = projectFilesLocation;
}
public abstract String getPath(String someValue);
}
Run Code Online (Sandbox Code Playgroud)
我不是将DI用于单元测试(喘气我甚至不进行单元测试,现有项目).我只是想分开我的依赖/创造关注点和逻辑关注期.
如果您想要注入的东西(例如文件位置)是类直接使用的东西,那么注入它是完全有效的。
Object对于aFile或 a之类的情况,String这与称为服务的东西没有什么不同。它是你的类的依赖项,因此 DI 适用。