Considérons le ci-dessous:CIO - L'injection de dépendances multiples
public class DependencyA {}
public class DependencyB {}
public class DependencyC {}
public class DependencyD {}
public class Service1
{
public Service1(DependencyA a, DependencyB b, DependencyC c, DependencyD d) { ... }
}
public class Service2
{
public Service2(DependencyA a, DependencyB b, DependencyC c, DependencyD d) { ... }
}
public class Service3
{
public Service3(DependencyA a, DependencyB b, DependencyC c, DependencyD d) { ... }
}
Je constate que beaucoup de mes services dépendent de plusieurs éléments communs, et je pense à mettre en œuvre une prise de solution comme ci-dessous (tous câblé via Windsor) pour éviter la répétition du code dans les constructeurs de Service.
public class DependencyContainer
{
public DependencyA A { get; set; }
public DependencyB B { get; set; }
public DependencyC C { get; set; }
public DependencyD D { get; set; }
}
public class Service1
{
public Service1 (DependencyContainer container) { ... }
}
Vous pouvez également créer une classe ServiceBase. La vraie question est-ce que cela met en évidence un problème de conception plus large dans les services? Peut-être que je prends trop de DI, mais ce sont toutes des dépendances authentiques.
Si oui, comment puis-je coder autour de cela? Sinon, la solution proposée est-elle un moyen valable d'atteindre cet objectif?
Votre droit. Le fait même que j'ai soulevé la question, c'est que quelque chose sentait. Merci. – crowleym