Я слышал об использовании инъекции зависимостей через Singleton для моего коллеги. Я до сих пор не могу разобрать, если это два ортогональных шаблона, которые можно заменить друг на друга? Или DI способ сделать тестируемый паттерн Singleton?
Пожалуйста, взгляните на следующий фрагмент кода.
IMathFace obj = Singleton.Instance;
SingletonConsumer singConsumer = new SingletonConsumer(obj);
singConsumer.ConsumerAdd(10,20);
SingletonConsumerПринимает параметр типа IMathFace. Вместо внутреннего доступа к одноэлементному классу SingletonConsumerбудет получен экземпляр синглтона, переданный вызывающей стороной. Является ли это хорошим примером использования одноэлементного класса посредством внедрения зависимостей?