通过我的(可能是微薄的)理解,在你的控制器的方法的中间这样做/演讲被认为是不好的做法,因为它创建StructureMap和您的主持人之间的依赖关系最佳实践:IOC(StructureMap)
void Override() {
ICommentForOverrideGetter comm = StructureMap.ObjectFactory.GetInstance<ICommentForOverrideGetter>();
由于这种依赖性应通过构造函数注入演示者,并使用IoC容器将其连接起来。在这种情况下,尽管每次运行此方法时我的代码都需要ICommentForOverrideGetter
的全新副本。这是上述最佳实践的例外,还是我应该重新考虑我的架构的情况?
我绝对喜欢这种说法(来自David Wheeler)。我知道我可以做到这一点,但男孩,这似乎太简单的东西太多的开销。 IoC容器是否应该像您所描述的那样消除对工厂的需求? – 2010-09-20 15:21:16
IoC电话并不是特别困扰我,我只是想了解更多关于IoC最佳做法。当我认为复杂度/效益比太高时,我毫无疑问地忽视了最佳实践,我只是想确保没有其他东西丢失。 – 2010-09-20 15:22:57
个人而言,我只是不希望在演示者中对IoC容器产生严重依赖(或者更普遍:我想单元测试的类)。 – Maxem 2010-09-20 15:25:01