Я использую Dependency Injection в своем коде (с Ninject ) и думал, что у меня все хорошо, пока не столкнулся с проблемой производительности, вызванной неправильным пониманием того, как DI-контейнеры вписываются в ваш код. Кажется, есть много информации о том, как использовать DI-фреймворки, но не слишком много о том, где их не использовать или как их лучше всего использовать (по крайней мере, я смог найти)
Я подумал, что напишу то, что, как мне показалось, были лучшими практиками, и посмотрю, согласны ли другие люди со мной и какие другие лучшие практики могут придумать люди.
- Использовать одно ядро на приложение или домен приложения
- Использовать контейнер DI только для долгоживущих объектов Singleton, использовать фабрики (или другие методы) для кратковременных переходных объектов)
- Предпочитать инжектор конструктора, а не свойство или поле
- Запрашивать объекты, не строить их
- другие ?? ссылки на хороший блог / статьи ??