AngularJS Service versus Factory
AngularJS has 5 ways to create services
Provider - used by the other services except constant
Factory - constructs a new service using a function that returns an object
Value - for storing simple values or objects
Service - works the same a factory except as it is newed internally it uses this properties
Constants - for providing configuration services
When I am using angular to construct a web app I create a folder called services and add my services there that are constructed using factory functions.
But why do we use factory functions instead of service functions?
John Papa says, as they are so similar, we should use a factory instead for consistency.
In the angular source we can see that a service uses a factory internally
The typical examples of a service and factory demonstrate basic functionality in which they look virtually the same.
But how do we make better use of a service and factory?
An example of an appropriate use of a services ability to return a new object, would be, where prototype inheritance would allow us to call methods from a base class as well as the child class.
Below is an example of an appropriate use of factory service, which is more suited, to returning data via the functions defined in the object it returns.