对于我所见过的所有DI示例,我始终将依赖关系视为其他类(如服务)。但是一个对象实际上可能依赖于配置值,比如字符串和资源包装器(File/Path/URI/URL,而不是整个大值字符串/文档或读者)。DI设计模式的值对象是否有效依赖关系?
请注意,这仅仅是关于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);
}
我不使用DI只是单元测试(喘气我甚至没有单元测试,现有的项目)。我只是想分开我的依赖/创造性关注和逻辑关注时期。
对于像我这样一见钟情的人,DI代表依赖注入(英文不是我的自然语言):) – LaGrandMere 2013-03-21 11:43:53