Re[11]: О пользе Dependency Injection
От: microuser  
Дата: 16.01.21 08:40
Оценка:
Здравствуйте, IT, Вы писали:

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


M>>Так в данном примере вообще ничего искать не нужно, т.к. при использовании DI экземпляр Bar будет создаваться контейнером и все его зависимости будут так же создаваться контейнером, соответственно нужно посмотреть только код конфигурации этого контейнера.


IT>И что я там увижу? Список имён классов?


M>>Кроме того современные контейнеры никогда к такой ситуации не приведут, т.к. Bar не сможет быть равен null, будет ошибка при попытке создания Foo о том что не удалось разрешить зависимость Boo и там же в стек трейсе будет видно почему не удалось.


IT>По-поводу умения абстрагироваться я уже выше отписал.


Я же отвечал на конкретный код, который ты привел.

Хорошо, давай модифицируем пример:

class Foo
{
public Foo(Bar b)
{
if (b.Atata == null)
throw ...
}
}

В данном случае при ошибке у нас будет стек трейс в котором будет прекрасно видна последовательность вызовов, поэтому ходить по конструкторам и изучать кто кого вызывал уже будет не нужно.
Предположим что стек трейса у нас нет, но мы знаем что ошибка была и хотим понять как так получилось что Atata == null. Тогда нам нужно нажать Shift+F12 на свойстве Atata, но не на конструкторе. Вот это реальный кейс который часто встречается на практике.

Просто кейс что при использовании DI в конструктор передали null невозможен в принципе, тут нужен другой пример.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.