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--.
AngularJS uses $provide to register new providers. The providers basically create new instances, but only once for each provider. The $provide has six methods to create custom providers and I will explain each one of them with the help of sample code.
Note: All services in AngularJS are singletons. That means that the injector uses each recipe at most once to create the object. The injector then caches the reference for all future needs. Since a Factory is a more powerful version of the Value recipe, the same service can be constructed with it.