2014-09-30 18 views
5

Nella maggior parte degli esempi, trovo che utilizzo Servizi in angularJs trovo che il servizio sia realmente una fabbrica. ad esempioIn AngularJS perché è convenzione denominare un servizio di fabbrica

angular.module('myModule').factory('customerService', [ 
     '$http', 
     function ($http) { 
      return { 

       get: function() { 
        return doSomeStuff(); 
       } 
      }; 
     } 
    ]); 

L'autore ha creato una fabbrica, ma chiamato Servizio clienti al posto di customerFactory. Perchè è questo? C'è qualche stigma contro le fabbriche o sono servizi angolari così super-cool che tutti vogliono i complimenti per scriverli, anche quando non lo fanno.

Inoltre, per essere chiari a chiunque risponda a questo, non sto chiedendo i meriti comparativi delle fabbriche o dei servizi che sto chiedendo perché la comunità angolare stia deliberatamente manomettendo i loro oggetti.

+0

Penso che il nome 'fabbrica della è legato al modo in cui il servizio viene creata un'istanza. –

+0

Possibile duplicato ?? rinunciare! Ho esplicitamente detto che non sto chiedendo meriti comparativi – Twisted

risposta

1

Anche se il codice che hai postato registra effettivamente una fabbrica di servizi, il primo parametro di $ provide.factory() è il nome del servizio istanza (i servizi sono singoletti). Questo nome viene utilizzato da $ injector per determinare quale factory viene chiamata quando si dichiara una dipendenza dal servizio. Vedere più qui:

https://docs.angularjs.org/api/auto/service/$provide

2

Fabbrica è il fornitore di base che è possibile specificare dipendenze esterne durante la costruzione dei servizi. Questo è ciò che dice la documentazione di Angularjs sulla loro denominazione.

https://docs.angularjs.org/guide/providers

Best Practice: un nome alle funzioni factory come fabbrica (ad esempio, apiTokenFactory). Anche se questa convenzione di denominazione non è richiesta, è utile quando si naviga nella base di codici o si guardano le tracce di stack nel debugger .

Quindi è una scelta dello sviluppatore ma sicuramente non il modo consigliato.

+0

Come dici tu, i documenti dicono che la pratica migliore è chiamare una fabbrica come fabbrica. Eppure la comunità più ampia ignora questo e chiama un servizio alla fabbrica. perché? – Twisted

+2

Perché tutti si riducono ai servizi. Ciò che '$ injector' crea è chiamato servizio. Differiscono solo le ricette per la creazione di un servizio, come _factory_ o _provider_. In termini angolari chiamarlo un servizio non è sbagliato. Spetta allo sviluppatore essere suffisso con Service o Factory. – idursun

Problemi correlati