Задать вопрос

Dependency Injection (Какой способ лучше использовать)?

Почему-то раньше особо не задумывался, но сейчас начал такое замечать и меня это озадачило, что же лучше использовать и какие могут быть последствия? Логика склоняется больше ко второму вариату, правда, тесты и всё такое...
Handler(Main main) {
        this.main = main;
        this.service = main.getService()
    }
//или
   Handler(Main main, Service service) {
        this.main = main;
        this.service = service;
    }
  • Вопрос задан
  • 2553 просмотра
Подписаться 3 Оценить Комментировать
Решение пользователя Сергей Протько К ответам на вопрос (3)
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1-ый вариант валиден если бы было так:
Handler(ServiceFactory factory) {
        this.factory = factory;
        this.service = factory.createService()
    }

если оба сервиса существуют в единственном экземпляре - то второй вариант. Если нужно делать шаблоны типа Registry и хранить там пул сервисов, то тогда опять же как и в случае с фабриками - первый вариант.
Ответ написан