角度服务注入设计 - 模式与两个服务密切相关
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了角度服务注入设计 - 模式与两个服务密切相关相关的知识,希望对你有一定的参考价值。
我有两个服务,如Service1
和Service2
。
这两项服务都在AppModule
(Root模块)中注册。
Service2
注入Service1
,如下所示。
@Injectable()
class Service2{
constructor(){}
public foo(){}
}
和
@Injectable()
class Service1{
constructor(public service2:Service2){
this.service2.foo()
}
}
而且,一个组件需要Service1
和Service2
的函数foo()。
在这一点上,我有一个关于将这些服务注入组件的设计模式的问题。我认为有两种方法可以实现我的目标。
模式1
@Component()
class Component{
constructor(
public service1:Service1
,public service2:Service2
){
this.service2.foo()
}
}
模式2
@Component()
class Component{
constructor(
public service1:Service1
){
this.service1.service2.foo()
}
}
我认为模式2因为简单而更好。
那么,哪一个更好?或者还有其他建议吗?
答案
观察你的模式2,每次你必须使用它时你必须使用this.service1.service2.foo()
,对我来说是额外的工作。在这两种模式中,您的服务都已初始化,因此我建议使用模式1,因为this.service2.foo()
非常有效。
以上是关于角度服务注入设计 - 模式与两个服务密切相关的主要内容,如果未能解决你的问题,请参考以下文章