È un modello o antipattern di iniettare una dipendenza che è un albero di dipendenze?
Ad esempio:
public class ClassExample
{
private IContainer _container;
public ClassExample(IContainer container)
{
_container = container;
}
}
public interface IContainer
{
IDependencyA DependencyA { get; set; }
IDependencyB DependencyB { get; set; }
IDependencyC DependencyC { get; set; }
}
public interface IDependencyA
{
}
public interface IDependencyB
{
}
public interface IDependencyC
{
}
L'esempio sopra potrebbe essere reso ancora più profondo (una struttura) - ad esempio, IDipendenzaA potrebbe contenere anche più dipendenze IDipendenzaA, IDipendenzaAB, ecc.
Qualcuno potrebbe utilizzare il metodo sopra per ridurre al minimo la duplicazione del codice quando si dispone di più punti in cui è necessario iniettare uno stesso set di servizi. Il codice mostrerà: container.DependencyA.DependencyAA.Method(...)
in molti casi che lo rende più prolisso e meno ASCIUTTO.
L'uso del metodo sopra è un'idea buona o cattiva (modello / antipattern)? O quando è una buona idea, e quando è una brutta?