Как применить внедрение зависимостей, когда не все зависимости используются всегда? - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь понять DI. Поскольку я не пишу модульные тесты (пока), самым большим преимуществом для меня является разделение классов и управление / контроль зависимостей.

Но есть один вопрос: что, если у меня есть класс A (контроллер), который создает экземпляр класса B (слушатель), а класс B - при определенных обстоятельствах - создает экземпляр класса C (отправитель)?

Согласно принципу DI, я должен создать C и передать его B. Что если мне не нужен C во время запроса? Должен ли я сначала создать какую-то логику для внедрения зависимостей?

1 Ответ

0 голосов
/ 15 мая 2018

Согласно принципу DI, я должен создать C и передать его B. Что если мне не нужен C во время запроса?Нужно ли сначала создавать логику для внедрения зависимостей?

Это не должно быть проблемой, потому что конструкторы инъекций должны быть простыми :

Конструктор инъекций должен делать не более чем получение зависимостей.

Когда вы делаете это, создание объекта действительно быстрое и надежное , и не имеет значения, действительно ли это или нетпотребитель всегда использует все свои зависимости.

...