免责声明:我知道DI和服务定位器模式之间存在争议。我有一个旨在避免辩论的问题。这个问题适用于服务定位器的粉丝,他们碰巧像Fowler一样思考“DI ...很难理解......总的来说,除非我需要,否则我更愿意避免它。”出于我的问题的目的,我必须避免DI(故意不给出的原因),所以我不试图引发与我的问题无关的辩论。
问题:我将IOC容器保存在单件中的唯一问题(请记住上面的免责声明)是使用子容器。据推测,儿童容器本身不会是单身人士。起初我认为这是一个真正的问题。但是当我想到它时,我开始认为这正是我想要的行为(子容器不是单例,可以随意使用Disposed())。
然后我的思绪进一步深入到一个哲学领域。因为我是服务定位器粉丝,所以我想知道儿童容器的概念是多么必要。在我看到其有用性的一小部分案例中,它要么是满足DI(我大部分都是在避免),要么问题是可以解决的,而不需要求助于IOC容器。我的想法部分受到IServiceLocator interface的启发,它甚至不愿意列出“GetChildContainer”方法。
所以我的问题就是:如果你是服务定位器粉丝,你是否发现儿童容器通常没有实际意义?否则,什么时候它们必不可少?
额外信用:如果单身中的服务定位器存在其他哲学问题(除了DI倡导者提出的那些),它们是什么?
答案 0 :(得分:3)
IMHO: