Uno degli inconvenienti del pattern "Service Locator" è che un chiamante può essere ingannato riguardo alle dipendenze di un chiamato.
Ok, ma cosa succede se metto le dipendenze come parametri generici a livello di classe:
class Node<T> where T : ISomeInterface, new()
{
ISomeInterface obj
public Node()
{
obj = new T();
}
}
Ho trovato un paio di opinioni qui. Ma voglio continuare una discussione .
Il controargomento più significativo è che l'iniezione di dipendenza mediante generici rende l'associazione tardiva non disponibile. Ma a chi importa nella maggior parte dei casi? Cosa succede se la mia app non ha bisogno di questa funzione?
Voglio trovare solidi argomenti contrari.
P.S. il nuovo vincolo () non è necessario, come hai capito.