Service Provider Factory 的关系

Service Provider Factory 本质都是 Provider 所调用的都是以下内部函数
只在于写法不同
以下为源码解析:

 1 function provider(name, provider_) {
 2 
 3     //如果 provider_ 未函数 ,调用 providerInjector.instantiate 创建实例
 4     //在此将 provider_ 当作构造函数使用
 5     if (isFunction(provider_) {
 6         provider_ = providerInjector.instantiate(provider_);
 7     }
 8 
 9     // provider_ 必须定义一个 $get 否则抛出异常
10     if (!provider_.$get) {
11         throw Error('Provider ' + name + 'must define $get factory');
12     } 
13 
14     //此前已将 provider 缓存, 在此返回 
15     return providerCache[name + providerSuffix] = provider_;
16 }
Provider 模式是 ‘策略模式’ + ‘抽象工厂模式’ 的混合体 可成为 ‘供应者/提供者模式’
原文地址:https://www.cnblogs.com/lishalom/p/6505666.html