Информация об изменениях

Сообщение Re: как ресолвить не передавая ссылки на контейнер ( DI ) от 21.05.2018 11:12

Изменено 21.05.2018 11:14 GarryIV

Re: как ресолвить не передавая ссылки на контейнер ( DI )
Здравствуйте, okon, Вы писали:

O>Пишут что передавать ссылку на IContainer плохо,

O>а как быть если нужно в процессе вычислений создать экземпляр класса и проинициализировать его поля, например с передачей контейнера, например
O>Как такие сценарии правильно строятся без передачи и хранения ссылок на контейнеры ?

В Спринге это делается как то так


@Bean
public FactoryType factoryType(Dependency1 dep1, Dependency2 dep2) {
  return new FactoryType(dep1, dep2);
}


Тут по сути фабрика которая создает объект типа FactoryType с зависимостями dep1, dep2.
Re: как ресолвить не передавая ссылки на контейнер ( DI )
Здравствуйте, okon, Вы писали:

O>Пишут что передавать ссылку на IContainer плохо,

O>а как быть если нужно в процессе вычислений создать экземпляр класса и проинициализировать его поля, например с передачей контейнера, например
O>Как такие сценарии правильно строятся без передачи и хранения ссылок на контейнеры ?

В Спринге это делается как то так


@Bean
public FactoryType factoryType(Dependency1 dep1, Dependency2 dep2) {
  return new FactoryType(dep1, dep2);
}


Тут по сути фабрика которая создает объект типа FactoryType с зависимостями dep1, dep2.

ЗЫЖ Этот метод явно никто не вызывает, он вызывается контейнером и передает туда необходимые зависимости.