вызывалась каждый раз, а не единожды?
providedIn: 'any' ?
а если восьмая версия, а не 9+?
ну наверное, надо провайдить везде где инжектишь
понял. а что насчет сделать вместо токена сервис-фабрику, который будет делать то же самое, что и factory у токена? и потом его инжектить в тех же местах, где нужен был сам токен
Звучит как DI внутри DI, но каких-то очевидных проблем я не вижу. Интереснее, зачем вам понадобилось каждый раз создавать новый инстанс сервиса.
версионированные сервисы. хотелось бы по токену в зависимости от текущих условий получать нужный экземпляр
А интерфейс у разных версий одинаковый?
методы имеют практически одинаковую сигнатуру, различается интерфейс одного из возвращаемых значений
Тогда ваш вариант почти ок. Только нужен не сервис-фабрика, а сервис-адаптер, который будет реализовывать общий для всех версий интерфейс (можно возвращаемые типы юнионами сделать) и пробрасывать вызовы в нужную реализацию. Похоже на паттерн стратегия..
ну отличается только модель, с которой работают сами сервисы
Обсуждают сегодня