Re[17]: О пользе Dependency Injection
От: varenikAA  
Дата: 20.01.21 01:49
Оценка:
Здравствуйте, ·, Вы писали:

·>Здравствуйте, varenikAA, Вы писали:


AA>>// Что тут неявного?

·>Непонятно кто от кого и как зависит.

AA>>Зато точка сборки приложения одна а не размазана по разным сборкам.

·>Просто делай то же самое, но без контейнера. Если я правильно разгадал твой код:

·>
·>var dbOptions = new DbOptions()
·>    .UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
·>var dbContext = new DbContext(dbOptions);
·>var mainService = new MainService(dbContext);
·>services.AddHostedService(mainService);
·>

·>Код внезапно стал проще — никаких лямбд, генериков, рефлексии, даункастов. Можно использовать IDE вовсю — find usages, declarations, использовать рефакторинги.

Серьезно? "найти все ссылки" работает прекрасно и в первом случае.
Рефакторинг? Назовите хоть одну проблему.
DI никуда ни делся, только добавили кучу не нужных new.
От интерфейсов м механизма DI все равно никуда спрятаться в клиентском коде, хотя для получения ссылки, хоть для создания локального скоупа,
либо придется всюду делать ссылку на реализацию. Это отлично работает если у вас развитые средства рефакторинга, но это признак сильных зависимостей.

Вообще если посмотреть на техники ФП, то там все на интерфейсах(любая функция по сути это он и есть),
только за счет возможностей ЯП еще и вызов зависимости выносится за скобки, т.к. есть возможность создавать
вычислительные выражения.

"польза" Dependency Injection для ЯП типа C# очевидна. Не понимаю, почему нужно изобретать велосипед, когда есть отличная билт-ин реализация в коре(быть может вы все еще работает на легаси, тогда — да, только лисопед)?
☭ ✊ В мире нет ничего, кроме движущейся материи.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.