我有两项服务,例如a
和Service1
。
这两个服务都在Service2
( Root 模块)中注册。
AppModule
注入到Service2
中,如下所示。
Service1
和
@Injectable()
class Service2{
constructor(){}
public foo(){}
}
而且,组件需要@Injectable()
class Service1{
constructor(public service2:Service2){
this.service2.foo()
}
}
并使用Service1
中的功能 foo()。
在这一点上,我有一个关于将这些服务注入组件的设计模式的问题。我认为有两种方法可以实现我的目标。
模式1
Service2
模式2
@Component()
class Component{
constructor(
public service1:Service1
,public service2:Service2
){
this.service2.foo()
}
}
我认为模式2 更好,因为简单。
那么,哪个更好?还是还有其他建议?
答案 0 :(得分:0)
观察您的模式2,每次必须使用this.service1.service2.foo()
时,对我来说,它都是多余的工作。在这两种模式中,您的服务均已初始化,因此我建议使用模式1,因为this.service2.foo()
效率很高。