Angular service, 服务


 
早上开车上班, 发现车快没油了, 因而拐进加油站. 有一辆出租车也在加油..
 
Angular service在一个应用里是以单例形式存在的. 这个单例的实例是由service factory(service工厂)建立的.
 
  • 加油, 就比如是一个 Angular service; 
  • 不管是我加的油, 仍是出租车加的油, 都是从这个加油站同一个地下油罐取出来的一样的汽油. 你们使用的都是同一个汽油实例(单例);
  • 个人车与出租车共享了加的汽油的属性, 好比: 都是93#汽油, 掺水的比例, ...
所以, 在Angular里, 以下状况会考虑使用service:
  • 可重用的, 纯业务逻辑的代码, 与$scope无关的代码能够被写成service. DRY.
  • 用service共享数据, 由于在应用中, 对service的依赖都是引用同一个service实例
  • ...
------
开头写到 service 是由 service factory(是一个函数) 所建立, service factory 就比如上图的那2个油桶.
 
在Angular体系中, service factory 又是由 service provider(是构造函数) 所建立, service provider 就比如这个加油站.
设想若是加油站很大, 必须有一个指路牌, 标识出在哪儿加93#汽油. service provider 函数必须包含名为   $get  的属性, 它指向 service factory 函数. 就比如,   $get  这个路标指示咱们在哪儿找到93#加油点.
 
 
Angular 提供了5个建立service的方法, 由繁到简, 或具备特殊功能
  • .provider(provider)
  • .constant(obj)
  • .value(obj)
  • .factory(fn)
  • .service(class)
主要相比较的为 provider(), factory(), service() 3个函数.
用它们定义service时, 写法各不相同.
最终实例化的方式也不一样.
provider() 比如整个加油站, 可配置性强, 程序员能够尽情发挥..
factory(), service() 次之, 哪里须要哪里搬, 定义简单, 
 
----
 
var provider = function() {
 
  this.$get = function factory() {
    
  }
 
}
相关文章
相关标签/搜索