Здравствуйте, IQuerist, Вы писали:
IQ>·>Вот скажем "DI" и "DI IoC-контейнер" это разные вещи. Использовать DI можно (а на прошлой моей работе даже решили что нужно) без контейнера. IQ>·>И интерфейсы тоже к DI отношения не имеют. Можно использовать DI и без интерфейсов. IQ>Можно делать всякое... я описал конкретный кейс который имхо наблюдается повсеместно, но почему-то мало критикуется или критикуется не по делу.
Ты описал кейс, но не предложил альтернативу. Как надо-то по-твоему?
IQ>Гиперболизируя можно было бы добавить еще IJsonConverter чтобы механизм конвертирования json можно было изменить
А ты не подумал, что тот же JsonConverter может иметь ещё пять зависимостей, скажем настройки форматирования json и какие-нибудь там сериализаторы кастомных типов?
IQ>и что ни будь вроде IDateTimeProvider, работа с датой и временем вряд ли поменяется, но
А мы так сделали в нашем проекте, ибо да, у нас "текущее время" оказалось вещью необычной.
IQ>на всякий случай стоит "уменьшить зависимости"
DI не уменьшает зависимости, а делает их явными.
Единственное что в твоём коде я бы поменял, так это выкинул все эти I* интерфейсы и инжектил бы сами классы. Интерфейс лежащий рядом с единственной имплементацией — не нужен.
но это не зря, хотя, может быть, невзначай
гÅрмония мира не знает границ — сейчас мы будем пить чай