Во-первых, можете ли вы прочитать это обязательное чтение и отредактировать все недостающие точки оттуда ...
Если вы ожидаете, что контейнеры DI будут a) быть необычайно сложными животными или b) совершенно новая парадигма дизайна, я считаю, что вы реагируете обычным образом защиты, подходя к чрезмерно раскрученной концепции.
Хотя можно приложить немало усилий для использования DI-контейнеров всеми видами тайных способов.и там есть много мощности, по сравнению с AOP и т. д., типичным местом для простого автоматического подключения зависимостей без какой-либо «всей команды, нуждающейся в понимании» чего-либо или «накладных расходов» (вы имеете в виду концептуальное или перфомансное?Если последнее, измеряли ли вы влияние в реальном приложении?).
Но понимаете ли вы это: - свобода и сосредоточенность на чистом дизайне, обеспечиваемые снижением трения и повышенной пластичностью в результате того, что вы отбрасываетемного стандартного кода (и необходимость перенастроить его, если что-то изменится) контейнеры IOC для менякритическая часть экосистемы развития.Хотя они делают только несколько new
здесь и там, их влияние не пропорционально фактической (небольшой) части работы, которую они выполняют.
Что касается того, отличаются ли они отнормальное основанное на интерфейсе программирование и хорошие принципы проектирования, я бы рассматривал их как нечто гораздо меньшее - инструмент, который поддерживает только один из принципов SOLID .