Not the elegant prince of our debauched and vicious art, not the jeweled idol of our society churches--but the Jesus of the awful reality, the man of sorrow and pain, the outcast, despised of the world, who had nowhere to lay his head--.
Service is singleton and simple version of Factory. While Factory is a simple version of Provider, Factory is a more flexable compared to service method, and a short handed for configuring a service when $get method is required. Provider creates new object by the $get factory function. Provider is not injectable during run phase or run time while all others are ( Constant, Variable, Service, and Factory), however, Provider is injectable during the configuration phase or compile time.
AngularJS: The Provider Subsystem. In my previous post, I did a deep-dive into the injector sub-system of AngularJS, which plays a very significant role in managing the dependency injection mechanics of the framework. Another equally important player in supporting dependency injection is the provider, also referred to as $provide.