AngularJS
Отличительная служба против фабрики
Поиск…
Factory VS Service один раз и навсегда
По определению:
Услуги - это в основном функции конструктора. Они используют ключевое слово this.
Заводы - простые функции, поэтому возвращают объект.
Под капотом:
Фабрики внутренне вызывают функцию поставщика.
Служба внутренне вызывает функцию Factory.
Обсуждение:
Заводы могут запускать код до того, как мы вернем наш литерал объекта.
Но в то же время Сервисы также могут быть записаны для возврата литерала объекта и запуска кода перед возвратом. Хотя это непротиворечиво, поскольку службы предназначены для работы в качестве функции конструктора.
Фактически, функции-конструкторы в JavaScript могут возвращать все, что они хотят.
Так какой из них лучше?
Синтаксис конструктора служб ближе к синтаксису класса ES6. Так что миграция будет легкой.
Резюме
Таким образом, в целом, провайдеры, фабрики и службы являются поставщиками.
Завод является частным случаем поставщика, когда все, что вам нужно в вашем провайдере, - это функция $ get (). Это позволяет вам писать с меньшим количеством кода.
Служба является частным случаем фабрики, когда вы хотите вернуть экземпляр нового объекта, с тем же преимуществом при написании меньшего количества кода.