factory、service 和 provider 是什么关系?

如题所述

factory , service , provider都是angular 提供的服务
factory就是原生js里的方法,一个简单的函数
service类似原生里构造函数的过程,拥有一个构造器constructor,也就是说有 new的过程,追加属性和方法都是在this上追加的
provider是服务商当service需要配置的时候,需要使用provider提供服务,例如当使用angular进行跨域访问,需要配置jsonp信息的时候,就可以使用provider进行config的配置,简单理解是service的高级版本,provider提供一个$get的属性来返回 $provider的实例
他们都是单例模式,只实例化一次。
理解 :
provider > service > factory
factory用来配置简单的服务
service是在factory的基础之上加入了面向对象的思想,提供更多功能的服务
provider是在service的基础上进一步改进配置信息
factory与service在底层代码上都来源于provider
例: 可以在factory里写一个http()请求,不做任何配置,参数写死我可以在service里写一个 http( )请求,不做任何配置,参数写死我可以在service里写一个http()请求,不做任何配置,参数写死我可以在service里写一个http( )请求,传入请求的参数可以先配置在this的属性上传入方法
我可以在provider里写一个请求,然后在config上传入要配置的参数,URL, method,data等信息,通过config来修改provider的参数,再将服务商提供的服务注入控制器controller
注意事项:
config里传入的参数是nameProvider而不是name,也就是说 myProvider, config 里传入的参数就是myProviderProvider而不是myProvider
温馨提示:答案为网友推荐,仅供参考