【问题标题】:Angular circular dependency: best practices for handle itAngular 循环依赖:处理它的最佳实践
【发布时间】:2021-10-05 06:12:11
【问题描述】:
我的应用中有UserService 和GroupService,这两个服务相互了解并使用彼此的功能是有道理的。
有几个 Angular 工具可以让我“修复”循环依赖警告。
但是到处都写着如果你有循环依赖,这表明你有糟糕的架构。
那么,对于这种情况,好的架构是什么?为什么强制(相当强制)其中一项服务不知道另一项服务是正确的?
【问题讨论】:
标签:
javascript
angular
typescript
circular-dependency
【解决方案1】:
所以问题是当一个服务需要被实例化时,在构造函数中它将需要第二个服务。但是要实例化第二个服务,在构造函数中它需要第一个服务。
您可以做的是将这两个服务中的所有逻辑转移到一个“父”服务中,并通过应用程序使用这个“父”服务。
【解决方案2】:
你有两个选择:
-
将逻辑中常用的部分提取成一些SharedModule
-
如果其他模块需要任何模块逻辑的某些部分,则它不属于该功能模块,而是属于顶级模块(启动应用程序、执行核心应用程序并加载其他功能模块的模块)。