Eu tenho ouvido falar sobre o uso da injeção de dependência sobre Singleton para meu colega. Ainda não consigo entender se são dois padrões ortogonais que podem ser substituídos um pelo outro? Ou o DI é um método para tornar o padrão Singleton testável?
Dê uma olhada no seguinte trecho de código.
IMathFace obj = Singleton.Instance;
SingletonConsumer singConsumer = new SingletonConsumer(obj);
singConsumer.ConsumerAdd(10,20);
O SingletonConsumer
está aceitando um parâmetro do tipo IMathFace
. Em vez de acessar a classe singleton internamente, SingletonConsumer
a instância singleton passará pelo chamador. Este é um bom exemplo de consumo de classe singleton por injeção de dependência?