Services: you will be provided with an instance of the function. In other words
Factory: the value that is returned by invoking the function reference passed to module.factory.
you will be provided with ProviderFunction().$get(). The constructor function is instantiated before the $get method is called - ProviderFunction is the function reference passed to module.provider.
Providers have the advantage that they can be configured during the module configuration phase.