angular - 有没有办法以角度对服务进行分组?
问题描述
我有一个稀疏项目,通过它的许多组件调用服务以从 API 服务器获取数据。该服务处理从登录到彼此没有直接影响的多个其他功能。然而,将它们分开会给必须导入多个服务的构造函数带来麻烦。例如,这个:
@Component()
class ComponentExemple {
constructor(private back: BackendService) {}
}
会变得更像这样
@Component()
class ComponentExemple {
constructor(
private back: BackendService0,
private back: BackendService1,
private back: BackendService2,
private back: BackendService3,
...
) {}
}
我要问的是:有没有办法将多个服务组合成一个?(就像一个类可以扩展另一个父类,但在这种情况下,它需要扩展多个其他父类)。像这样:
@Injectable()
export class BackendService extends DataService1, DataService2, ... { }
即使这是不可能的(我想这不太可能),是否有一些指导方针可以使构造函数参数不那么混乱?
我需要模块化这个后端服务,以便更容易维护代码,以及其他贡献者。
解决方案
您可以尝试使用 mixins 来进行某种多重扩展,但我建议改用组合:
@Injectable()
export class BackendService {
constructor(
public data1: DataService1,
public data2: DataService2,
public data3: DataService3,
public data4: DataService4
) {}
}
@Component()
class ComponentExemple {
constructor(
private back: BackendService,
) {}
ngOnInit() {
this.back.data1.getStuff();
}
}
推荐阅读
- kubernetes - 在不同的 Kubernetes 命名空间中部署如何影响 Pod 到 Pod 的通信?
- python - 将参数动态传递给 xbbg 的 bhd 函数
- c# - 如何返回 FirstOrDefault
- angular - Angular e2e:自动匹配 chromedriver 和 chrome 版本?
- php - 如何在 mysql 上实现相同的功能?sprintf('%0.2f', $value)
- vba - 如何在有表格的地方引用草稿电子邮件?
- angular - 当我单击后退按钮时,ngIf false 为 true
- amazon-web-services - 如何在 AWS Amplify 中使用自定义范围和 react native
- python - 使用python自动填充Excel列和行中的公式
- uwp - 最小化UWP应用时是否可以添加挂钩功能