Лучшие практики внедрения зависимости

Я голосую за Visual Studio, но кажется, что C++ рассматривают как второй гражданин класса (не компилятор и материал, но поддержка IDE) по сравнению с языками.NET как C#, но надо надеяться MS будет делать с этим что-то следующей версией Visual Studio (новый стандарт появляется, и они обещали, что 10 должен быть новый 6).

8
задан Cœur 9 April 2017 в 09:51
поделиться

2 ответа

Вот краткий список наиболее важных моментов (некоторые из которых также появляются в OP):

  • Код не должен знать, какой контейнер DI (если есть) используется
  • Скомпонуйте все приложение в корне приложения (Composition Root)
  • Внедрение конструктора поддержки

Я не могу сказать, что согласен с вашей точкой зрения относительно объектов Singleton и Transient. Весь смысл DI в том, что внешний механизм (например, контейнер DI) определяет время жизни любой данной зависимости, а не кого-то еще, поэтому вам необходимо, чтобы все зависимости управлялись контейнером DI.

7
ответ дан 5 December 2019 в 15:24
поделиться

Используйте контейнер DI только для долгоживущих объектов Singleton, используйте фабрики (или другие методы) для короткоживущих переходных объектов)

Но действительно используйте DI для внедрения фабрик туда, где есть необходимо.

4
ответ дан 5 December 2019 в 15:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: