Важно : Обратите внимание, что я не имею в виду синглтоны как наличие частного конструктора и статической переменной экземпляра (или как кто-то предложил статический класс), но синглтоны как возвращающие один и тот же экземпляр из инверсии контейнера управления в течение жизненного цикла приложения.
Многие контейнеры по умолчанию используют короткий срок службы. Либо новый экземпляр для каждой зависимости (или для запроса), либо по экземпляру для каждой области (например, HTTP-запрос).
Мне интересно, почему контейнеры продвигают краткосрочные объекты вместо долгоживущих?
Обратите внимание, что я обычно регистрирую только свои службы в контейнере. Я регистрирую фабрики в контейнере, если мне нужно создавать модели предметной области и т. Д.