Angular4 第四章 使用工厂方法和值对象声明提供器
来源:互联网 发布:excel编程常用代码 编辑:程序博客网 时间:2024/05/16 00:32
1.工厂方法提供器声明 useFactory
providers: [ { provide:StockService, useFactory:(logger:LoggerService)=>{ //let logger=new LoggerService(); //耦合性 let dev=Math.random()>0.5; if(dev){ return new StockService(logger); }else{ return new AnotherStockService(logger); } }, deps:[LoggerService] //可将声明的提供器LoggerService传给工厂构造方法 } ,LoggerService ],
工厂方法提供器无论你调用几次,只会实例化一次,stock和stock2都使用了StockService这个提供器,所以二者显示的数据都是一样,使用的实例化对象始终是第一次实例化的
2.值对象提供器声明 useValue
providers: [ { provide:StockService, useFactory:(logger:LoggerService,isDev)=>{ //let logger=new LoggerService(); //耦合性 let dev=Math.random()>0.5; console.log(isDev); if(dev){ return new StockService(logger); }else{ return new AnotherStockService(logger); } }, deps:[LoggerService,"IS_DEV_ENV"] //一一对应工厂方法的参数 } ,LoggerService, {provide:"IS_DEV_ENV",useValue:false} ],
3.将LoggerService也用工厂方法声明
providers: [ { provide:StockService, useFactory:(logger:LoggerService,isDev)=>{ //let logger=new LoggerService(); //耦合性 let dev=Math.random()>0.5; console.log(isDev); if(dev){ return new StockService(logger); }else{ return new AnotherStockService(logger); } }, deps:[LoggerService,"IS_DEV_ENV"] //一一对应工厂方法的参数 } , {provide:LoggerService,useFactory:()={...}} , {provide:"IS_DEV_ENV",useValue:false} ],
阅读全文
0 0
- Angular4 第四章 使用工厂方法和值对象声明提供器
- 第四章:方法的声明及使用
- 第四章 语言和声明
- 第四章 语句和声明
- Angular4 第四章 依赖注入基本概念
- Angular4 第四章 依赖注入实战
- C++程序设计语言--第四章:类型和声明
- angularjs和angular4的区别。为什么使用angular4
- JavaScript使用工厂方法创建对象
- Spring 使用工厂方法实例化对象
- C#中对象的声明和使用
- C#中对象的声明和使用
- Qt 对象数据的声明和使用
- 第四章 对象和类
- 第四章 对象和类
- 第四章 类和对象
- 第四章 类和对象
- 第四章 类和对象
- angular4使用了bootstrap模态框手动关闭
- Unity c# 委托和回调 匿名函数和Lambda表达式
- vue.js之mixins混合
- 3 移除数组arr中所有与item相等的元素,不更改原数组。
- 扫描件如何转换成word文档?扫描件转可编辑文本技巧
- Angular4 第四章 使用工厂方法和值对象声明提供器
- 一个自动获取手机性能数据的线程
- Async/Await替代Promise的6个理由
- 威尔逊定理
- 同源策略详解
- java8新特性之lambda表达式
- POJ1328---Radar Installation(贪心算法)
- Servlet——ServletContext 对象
- request转对象