Roy wrote:Всяко лучше чем singleton. А применять надо с умом - понятное дело. Но мы используем гораздо чаще, чем 1%. Иначе тестировать не получается по-нормальному. Может у вас специфика другая или вы что-то другое подразумеваете под DI.
От синглтона вреда никакого, в отличие от DI
И именно юнит тесты - ценность которых переоценена на порядки - основной источник проблем с DI. Задумайтесь над очевидными фактами
1. Ошибки происходят от сложности
2. Чем больше ошибок делается, тем больше их "ускользает" от тестирования
3. Цель тестирования - минимизация ускользнувших ошибок
4. Юнит-тесты DI добавляют сложности
Складывая 2+2 получаем, что DI вреден для тестирования. Упс
(Еси чо, я не против дозированного использования DI in UT, но только дозированное, а не повсеместное, как того требуют программистские представления о крутизне)