Ленивая инъекция зависимости
У меня есть проект, где Ninject используется в качестве контейнера IoC. Меня беспокоит то, что у многих классов есть такие конструкторы:
[Inject]
public HomeController(
UserManager userManager, RoleManager roleManager, BlahblahManager blahblahManager) {
_userManager = userManager;
_roleManager = roleManager;
_blahblahManager = blahblahManager;
}
Что делать, если я не хочу иметь все экземпляры этих классов одновременно?
Кстати, когда все эти классы обернутыLazy<T>
и передано конструктору не совсем то что мне нужно.T
экземпляры еще не созданы, ноLazy<T>
экземпляры уже хранятся в памяти.
Мой коллега предлагает мне использовать шаблон Factory, чтобы контролировать все экземпляры, но я не уверен, что IoC имеет такую большую ошибку в дизайне.
Есть ли обходной путь для этой ситуации, или IoC действительно имеет такой большой дефект в его дизайне? Может быть, я должен использовать другой контейнер IoC?
Какие-либо предложения?