我是依赖注入的新手。我从来没有使用过,也从来没有完全理解过它到底是什么,但是在我最后一次攻击这个话题之后,我发现这是一种解耦对象及其依赖项的方法,一旦它们不负责实例化它的具体版本不再依赖,因为现在容器将为我们完成它并将准备好的对象交付到我们手中。
现在的重点是;“我什么时候应该使用它?”,总是???实际上,由于我是新手,甚至从未见过使用这种模式的项目,我无法理解我应该如何将它应用到我的域对象!在我看来,我将永远不会实例化我的对象,容器将永远为我做这件事,但随之而来的是一些疑问......
1) 例如,它的部分依赖关系来自 UI 的对象呢?
public class User(String name, IValidator validator)
假设我从 UI 中获取用户名,那么容器如何知道它并仍然为我提供这个对象?
2)我面临的其他情况;如果一个依赖现在是一个已经实例化的对象,比如说......一个 SINGLETON 对象,例如。我看到了有关注入依赖项生命周期的设置(我在谈论 Spring.NET,例如 http 请求范围)...但是,请求和其他与 Web 相关的东西都在我的表示层上,所以我怎么能在不破坏任何设计规则的情况下链接我的表示层和我的域层(因为我的域应该完全不知道它在哪里被消耗,不具有层依赖性等)
我渴望听到你们的消息。非常感谢。