我刚刚创建一个WorkQueueService,它可以处理不同类型的WorkItems。对于每种类型的WorkItem,我将实现IWorkItemProcessor。我正在使用IoC,因此所有IWorkItemProcessor实现都将在容器中注册。我的WorkQueueService将需要为每个WorkItem获取适当的处理器。什么时候适合直接依赖IoC容器本身?
问题是我应该让我的WorkQueueService直接依赖容器吗?或者我应该将这个责任抽象成一个WorkItemProcessorFactory,它只是IoC容器的一个小包装?
其他人在这种情况下做了什么,为什么?
+1抽象工厂是解决这类DI挑战的常见解决方案。你不应该直接依赖容器。 – 2010-01-19 11:18:19