Ho sentito parlare dell'utilizzo dell'iniezione di dipendenza su Singleton per il mio collega. Non riesco ancora a capire se sono due schemi ortogonali che possono essere sostituiti tra loro? O DI è un metodo per rendere testabile il modello Singleton?
Dai un'occhiata al seguente frammento di codice.
IMathFace obj = Singleton.Instance;
SingletonConsumer singConsumer = new SingletonConsumer(obj);
singConsumer.ConsumerAdd(10,20);
Il SingletonConsumer
è accettare un parametro di tipo IMathFace
. Invece di accedere internamente alla classe singleton, SingletonConsumer
riceverà l'istanza singleton dal chiamante. È un buon esempio di consumo della classe singleton tramite l'iniezione delle dipendenze?