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.
