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.
1 A module can depend on other modules.  A module can be used by AngularJS to bootstrap an application. By passing the module name to ng-app directive, we can tell AngularJS to load this module as the main entry point for the application.