实际上,我想实施某种策略模式。更准确地说,我想在运行时决定要实例化哪个类。
当然,这很简单。
if(...) {
this.service = new ServiceA();
} else {
this.service = new ServiceB();
}
但是,如果ServiceA和ServiceB在其类中使用依赖项注入怎么办?我必须通过那些实例,还是有更好的方法让Nest自动注入它们?
您可以同时注入这两种服务,然后将它们动态分配给您的变量:
service: Service;
constructor(private serviceA: ServiceA, private serviceB: ServiceB) {}
dynamicMethod() {
if (...) {
this.service = this.serviceA;
} else {
this.service = this.serviceB;
}
}