与两个服务紧密相关的Angular Service注入设计模式

时间:2018-07-06 04:43:26

标签: angular design-patterns angular-services

我有两项服务,例如aService1

这两个服务都在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 更好,因为简单

那么,哪个更好?还是还有其他建议?

1 个答案:

答案 0 :(得分:0)

观察您的模式2,每次必须使用this.service1.service2.foo()时,对我来说,它都是多余的工作。在这两种模式中,您的服务均已初始化,因此我建议使用模式1,因为this.service2.foo()效率很高。