AngularJS: O que é uma fábrica?

Eu tenho feito muito trabalho emAngular.js e no geral eu acho que é um framework interessante e poderoso.

Eu sei que tem havido muitas discussões sobre Serviços vs. Fábricas vs. Provedores vs. Valores, mas eu ainda estou bem confuso sobre o que é umFactory é.

Factory foi definido em outras discussões do StackOverflow como as seguintes:

Fábricas

Sintaxe:module.factory( 'factoryName', function ); Resultado: Ao declarar factoryName como um argumento injetável, você receberá o valor retornado, invocando a referência de função passada para module.factory.

Acho que essa explicação é muito difícil de entender e não aumenta minha compreensão do que é uma fábrica.

Alguém teria quaisquer explicações ou exemplos da vida real para compartilhar sobre o que exatamente umFactory é e porque você deve usá-lo em vez de umService, Provider, ou outro?

Atualizar

A service possui uma referência para qualquerobjeto.

A factory é uma função que retorna qualquerobjeto

A provider é uma função que retorna qualquerfunção

-ufa-

questionAnswers(4)

yourAnswerToTheQuestion