Вчера я нашел мобильный телефон в автобусе. Человек, который потерял его, не имел ни малейшего представления о человеке, владеющем ее мобильным телефоном. Я позвонил ее отцу и сказал, что у меня есть мобильный телефон его дочери. Поэтому я ввел зависимость от меня в него. Обычно это случай голливудского принципа: «Не звоните нам (потому что вы не можете!), Мы вам звоним». Позже он пришел и взял телефон своей дочери.
Я бы назвал это реальной проблемой, которую я решил с помощью внедрения зависимостей, не так ли?
По моему мнению, DI не является способом решения проблем, для которых у нас не было бы другого решения. Заводы могут быть еще одним способом решения таких проблем.
Таким образом, нет реального ответа на ваш вопрос, потому что DI - это всего лишь один путь, помимо других. Это просто симпатичное бедро, хотя и очень элегантно.
Мне действительно понравился DI, когда у меня были эти DAO, для которых требовался SQLMapper. Мне просто нужно было один раз ввести разные мапперы в класс отца, а остальное было сделано с помощью конфигурации. Это сэкономило мне много времени и средств, но я до сих пор не могу назвать это проблемой, для которой нет другого решения.