Supponiamo che abbia MyClass
con una dipendenza molto semplice. Utilizza l'iniezione del costruttore.
public class MyClass : IMyClass
{
private IA A;
public MyClass(IA a)
{
A = a;
}
}
Questo codice viene spedito e alcuni altri sviluppatori lo stanno usando.
Ad un certo punto in futuro ho bisogno di aggiungere una seconda dipendenza, su IB.
Come dovrei aggiungere questa dipendenza a IB?
Alcune opzioni e perché non lo approvo:
- Basta aggiungerlo al costruttore
- Cambio di frenatura.
- Ereditarietà o il modello decoratore.
- Classi extra e code bloat.
- La nuova classe avrà il codice di codice che passa attorno alla IA.
- Non ho alcuna garanzia che altri sviluppatori passeranno all'utilizzo della nuova classe.
- Utilizzare un localizzatore di servizi per compilare il nuovo campo IB.
- Ora sto usando due diversi tipi di iniezione per ulteriore confusione.
Mi sembra che l'iniezione del costruttore non sia facilmente estensibile.