Je suis sur le point de créer un WorkQueueService capable de gérer différents types d'éléments de travail. Pour chaque type de WorkItem, j'aurai une implémentation de IWorkItemProcessor. J'utilise IoC, donc toutes les implémentations IWorkItemProcessor seront enregistrées dans le conteneur. Mon WorkQueueService devra obtenir le processeur approprié pour chaque WorkItem.Quand est-il approprié de prendre une dépendance directe sur le conteneur IoC lui-même?
La question est de savoir si mon WorkQueueService dépend directement du conteneur? Ou devrais-je résumer cette responsabilité dans un WorkItemProcessorFactory qui serait juste un wrapper mince autour du conteneur IoC?
Qu'ont fait les autres dans cette situation et pourquoi?
+1 Abstract Factory est une solution très commune à ce genre de défis DI. Vous ne devriez jamais prendre une dépendance directement sur le conteneur. –