Services - Utility functions/ Data Adopters, Data Transformers, Data Delegate Factory - Entity/ prototyping/ Custom classes & objects Provider - For module configuration phase [.config]
On Fri, Apr 3, 2015 at 12:53 PM, Stewart Mckinney <[email protected]> wrote: > Factories *can return functions. > > On Fri, Apr 3, 2015 at 12:51 PM, Stewart Mckinney <[email protected]> > wrote: > >> I use services as "data handlers". Stuff that talks to the server, stuff >> that holds data to communicate among directives, etc. I also use services >> for things like directives that can be summoned by any other directive - a >> fancy alert popup, for example, would be accessed through a service. >> >> I use factories for extending services. I use Restangular so I often give >> certain element transformers to all objects returning back from the server. >> Factories return functions and it feels more natural to pass those objects >> to them. >> >> I rarely use providers, but I typically use them when I have a service >> which is used over several apps in our code base and it needs some >> configuration in order to work with each one. >> >> 90% of the time it's a service. 7% of the time it's a factory, 3% of the >> time, a provider. >> >> On Fri, Apr 3, 2015 at 12:15 PM, a_gaur <[email protected]> >> wrote: >> >>> I have been really confused when to use factories or services, this SO >>> question >>> <http://stackoverflow.com/questions/18939709/when-to-use-service-instead-of-factory> >>> gives >>> a great insight over the difference but I still don't understand over their >>> usage. One of the answers gives a very good conclusion of deciding what to >>> use when : >>> >>> In conclusion, >>> >>> --------------------------------------------------- | Type | Singleton| >>> Instantiable | >>> Configurable|--------------------------------------------------- | Service >>> | Yes | No | No >>> |--------------------------------------------------- | Factory | Yes >>> | Yes | No >>> |--------------------------------------------------- | Provider| Yes >>> | Yes | Yes | >>> --------------------------------------------------- >>> >>> >>> 1. >>> >>> Use Service when you need just a simple object such as a Hash, for >>> example {foo;1, bar:2} It’s easy to code, but you cannot instantiate it. >>> 2. >>> >>> Use Factory when you need to instantiate an object, i.e new >>> Customer(), new Comment(), etc. >>> 3. >>> >>> Use Provider when you need to configure it. i.e. test url, QA url, >>> production url. >>> >>> >>> However what was the initial purpose of introducing services, I saw the >>> angular code and it seems both of them are same. In fact one is created >>> from another doing some debugging I found out that services are created >>> from factories and factories are created from providers. We just default >>> some values as go down the chain for instance in service you only can >>> create an object while in a factory you can create a hash, a value or an >>> object but the configuration is default and lastly in provider you can also >>> pass the configuration block. >>> Then what led to creation of services and factories when providers can >>> do everything and even more w.r.t. the two ? >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "AngularJS" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> To post to this group, send email to [email protected]. >>> Visit this group at http://groups.google.com/group/angular. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> > -- > You received this message because you are subscribed to the Google Groups > "AngularJS" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/angular. > For more options, visit https://groups.google.com/d/optout. > -- *Rishi Tandon* Pearson Learning Technology Group Mobile: (310) 926-9032 Pearson Always Learning Learn more at www.pearson.com -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
