Здравствуйте, Буравчик, Вы писали:
Б>Рискую быть непонятым, но скажу, что DI это даже круче — в некотором роде это ФП-стиль построения большого приложения. Как в ФП мы передаем замыкание ("настроенную" функцию), так в DI мы передаем зависимость (уже "настроенный" сервис).
Так за все приходится платить. Разбираться в коде созданном на базе большинства DI действительно сложнее. По уму нужно делать статический DI, который резолвил бы зависимости во время компиляции. Это сняло бы много проблем. Но современные мэйстрим-языки на это не особо рассчитаны. Вот и появляются строковые конфиги. Ошибки при загрузке. Непонимание того почему тут подсунули некоторый тип, а не иной. И т.п.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.