我剛剛創建一個WorkQueueService,它可以處理不同類型的WorkItems。對於每種類型的WorkItem,我將實現IWorkItemProcessor。我正在使用IoC,因此所有IWorkItemProcessor實現都將在容器中註冊。我的WorkQueueService將需要爲每個WorkItem獲取適當的處理器。什麼時候適合直接依賴IoC容器本身?
問題是我應該讓我的WorkQueueService直接依賴容器嗎?或者我應該將這個責任抽象成一個WorkItemProcessorFactory,它只是IoC容器的一個小包裝?
其他人在這種情況下做了什麼,爲什麼?
+1抽象工廠是解決這類DI挑戰的常見解決方案。你不應該直接依賴容器。 – 2010-01-19 11:18:19