用于nestjs应用程序的插件系统。
我有一些生活在"核心"模块上的服务。这个模块应该是一个完全密封的黑盒子。添加新功能的唯一方法是在系统上注入新模块,更换核心模块的一些服务。
问题是:如何在运行时替换服务?(@可注射(
这个想法是用一个具有增强功能的新类来替换旧类。
@Module({
providers: [{provide: OldServiceClass, useClass: NewServiceClass}]
})
export class FeatureModule {}