Tenho trabalhado muito Angular.js
e, no geral, acho que é uma estrutura interessante e poderosa.
Eu sei que tem havido muitas discussões sobre Serviços vs. Fábricas vs. Provedores vs. Valores, mas ainda estou muito confuso sobre o que Factory
é.
Factory foi definido em outras discussões StackOverflow como o seguinte:
Fábricas
Sintaxe: module.factory( 'factoryName', function );
Resultado: Ao declarar factoryName como um argumento injetável, você receberá o valor que é retornado ao invocar a referência de função passada para module.factory.
Acho essa explicação muito difícil de entender e não aumenta minha compreensão do que é uma fábrica.
Será que alguém tem nenhum explicações ou exemplos da vida real para compartilhar sobre o que exatamente um Factory
é e por que você deve usá-lo em vez de um Service
, Provider
ou outro?
Atualizar
A service
contém uma referência a qualquer objeto .
A factory
é uma função que retorna qualquer objeto
A provider
é uma função que retorna qualquer função
- ufa -
fonte
Factories
(citado acima) foi um pouco confusa. Algumas das respostas abaixo se reduzemFactories
a algo que até eu consigo entenderRespostas:
Pelo que entendi, eles são todos iguais. As principais diferenças são suas complexidades. Os provedores são configuráveis em tempo de execução, as fábricas são um pouco mais robustas e os serviços são a forma mais simples.
Confira esta questão AngularJS: Serviço vs provedor vs fábrica
Além disso, essa essência pode ser útil para compreender as diferenças sutis.
Fonte: https://groups.google.com/forum/#!topic/angular/hVrkvaHGOfc
jsFiddle: http://jsfiddle.net/pkozlowski_opensource/PxdSP/14/
autor: Pawel Kozlowski
fonte
Provider > Factory > Service > Value
?Uma das principais diferenças que vejo é que você pode executar o código personalizado na fábrica. Mas, em um serviço, só acontece a criação de objetos.
fonte
Meus dois centavos neste tópico. Eu sou um novato e estou apenas começando a entender o Angular JS e isso foi uma das coisas que me confundiu muito e, portanto, estudei com alguns detalhes. Tenho feito anotações para dar entrevistas e isso pode ser útil para outras pessoas.
fonte
Os serviços são principalmente objetos nos quais você descreve a classe do construtor do objeto. Em algum lugar dentro da estrutura, a função Object.create () é chamada e você pode usar um serviço chamando seu objeto e métodos usando um controlador. A fábrica, por outro lado, não cria um objeto por padrão e, portanto, exige que você retorne a localização inteira do objeto depois de definir todos os atributos e métodos.
fonte