Возможно, имелись в виду различия между внедрением зависимостей с помощью конструктора и фабричных функций в Angular.
Внедрение зависимостей через конструктор — распространённый способ. 8 Когда Angular создаёт новый экземпляр компонента, директивы или класса pipe, он определяет, какие сервисы или другие зависимости нужны этому классу, глядя на типы параметров конструктора. 8 Если запрошенный экземпляр сервиса ещё не существует, инжектор создаёт его, используя зарегистрированного провайдера, и добавляет его в инжектор перед тем, как вернуть сервис в Angular. 8
Фабричные функции используются, когда зависимость не найдена. 1 В таком случае Angular создаёт её при помощи вызова фабричного метода или его провайдера. 1 Фабричный метод (также известен как виртуальный конструктор) предоставляет подклассам интерфейс для создания экземпляров некоторого класса. 1 В момент создания наследники могут определить, какой класс создавать. 1
Таким образом, разница заключается в том, что при внедрении зависимостей через конструктор Angular использует уже существующие экземпляры сервисов, а при использовании фабричных функций создаёт новые.