Я считаю себя опытным программистом и понимаю основную концепцию инъекции зависимостей. С другой стороны, большая часть моего опыта заключается в написании относительно низкоуровневого кода с одним человеком. У меня нет опыта работы над проектами крупных предприятий.
Учитывая этот фон, я не могу на всю жизнь обнимать меня вокруг, почему кому-то понадобится инфраструктура для инъекции зависимости. Может ли кто-нибудь дать мне краткий обзор того, как работает такая структура, не вникая в множество особенностей и объясняя, как это облегчает жизнь, чем просто сворачивать ваши собственные?
Изменить: здесь я получил отличные ответы. Правильно ли я говорю, что структура DI в основном дает вам удобный способ создания глобально доступных фабрик, которые создают/возвращают экземпляры зависимостей всякий раз, когда объект запрашивает их? Если это так, я делал такие вещи очень часто в моем коде, но никогда не думал использовать для этого какую-либо формальную/тяжеловесную фреймворк.