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