Gia*_*Voß 3 dependency-injection angular
这样做有什么缺点吗
constructor(public injector: Injector) {}
foo() {
this.injector.get(SomeService).doStuff();
}
Run Code Online (Sandbox Code Playgroud)
而不是这个
constructor(public service: SomeService) {}
foo() {
this.service.doStuff();
}
Run Code Online (Sandbox Code Playgroud)
除了可读性之外?
我有一个相当复杂的相互扩展的组件层次结构,并且我希望避免每次都使用 4 或 5 个注入服务来扩展构造函数。
这些方法之间没有区别,但是每次get在注入器上执行操作时,您都会运行一个函数,该函数必须去查找您提供的服务。您可以拨打get一次并将该服务的参考信息保留在财产中
constructor(public injector: Injector) {
this.someService = this.injector.get(SomeService);
}
Run Code Online (Sandbox Code Playgroud)
但我认为在构造函数中注入精确的服务而不是Injector更具可读性。
| 归档时间: |
|
| 查看次数: |
2588 次 |
| 最近记录: |