我是依赖注入的新手。我从来没有使用过,甚至从来没有体会过它的所有特征,但是在我最后一次攻击这个主题后,我发现这是一种解耦对象及其依赖的方式,一旦它们不负责实例化它的具体版本现在,容器会为我们做这件事,并把我们手中的准备好的东西传递出去。关于DI的问题以及如何解决一些问题
现在的重点是; “我应该什么时候使用它?”,总是?其实,因为我是一个新手,甚至从来没有看到过使用这种模式的项目,所以我不知道该如何将它应用到我的域对象中!在我看来,我将永不再实例化我的对象和容器将永远为我做的,但后来谈到有些疑惑...
1)约oobjects其依赖的那部分是什么来自UI,例如;
public class User(String name, IValidator validator)
假设我从用户界面获取用户名,那么conatiner如何知道它,并仍然为我描述这个对象?
2)Theres other situation I'm facing;如果依赖项现在是一个已经实例化的对象,比如说......一个SINGLETON对象。我看到了关于注入依赖注入的生命周期的设置(我在谈论Spring.NET,例如http请求范围)... 但是,请求和其他web相关的东西在我的表示层上,所以如何我可以在不违反任何设计规则的情况下链接我的表示层和我的域图层(因为我的域应该完全不知道它正在被使用的位置,不具有图层依赖性等)
我渴望听到您的消息。非常感谢。
很多DI问题今天=)看看这个答案是否有帮助。 :http://stackoverflow.com/questions/5433211/difference-between-ninject-and-rhinomock-or-moq/5433231#5433231 – gideon 2011-03-25 17:07:07
它有用@giddy,谢谢,但不完全是重点! =) – renatoargh 2011-03-25 17:11:08
@Renato只是认为这将有助于解释_如何使用DI。 =) – gideon 2011-03-25 17:12:57