Итак, совершенно очевидно, что DI хорошо подходит для проектирования и обслуживания приложений. Работать с системой, которая была разработана для ее использования с самого начала, приятно. Не все системы были рождены с DI в виду, хотя. Кроме того, почти всегда пересматривать такие системы для использования DI тоже невозможно: слишком много изменений означает слишком большой риск в предстоящем выпуске.
Таким образом, вопрос заключается в том, каковы методы создания решения с ограничением разрыва и введения DI оппортунистически (с другими обычными изменениями)? Со временем DI используется со значительной частью (частями) системы, и тогда может быть сделан последний переход.
Одним из решений, которое я видел и использовал, является статический локатор службы, который, по сути, предоставляет контейнеру (инжектору) источник необходимых экземпляров. Очень просто и работает. Есть ли другие подходы?