angular - 在 Angular 中捆绑服务
问题描述
我正在尝试找到一种将多种服务捆绑在一起的好方法。
我有几个与我的后端通信的服务(由我的后端团队提供),我希望它们可以通过单个服务访问,例如:BackendService,它将是一个容器,例如:FooService、BarService 和 DogService。
理想情况下,我可以直接调用这些服务中的函数,例如:backendService.dogBark()
<- 这个函数在 dogService.
我已经尝试过这Object.assign
条路线,并且我研究了 Typescript mixins,但这些选项不起作用/不是我所追求的。
在 BackendService 中实现功能也不是一种选择,因为我们的后端正在增长。
到目前为止,我发现的“最佳”方法是将要捆绑在一起的服务简单地注入到我的 BackendService 中,然后在需要的地方注入 BackendService,这为我提供了后一种选择,我可以在其中进行如下调用:backendService.dogService.dogBark()
正如我所说,一个宜居的解决方案,但我希望有人能够指出我更优雅的东西。
任何指导/提示将不胜感激。
解决方案
服务用于设置通信 b/w 组件、指令或模块。您可以采用最适合您的任何方法。我建议您strategy design pattern
根据用户的选择选择动态服务。
当然,您需要编写一个逻辑来为每个输入选择服务。您应该检查链接以了解如何实现它。
推荐阅读
- multilingual - 如何削减 Huggingface 上共享的预训练多语言模型?
- css - 未检测到 xpath 跨度
- batch-file - 批处理文件从另一个文件的文件中添加一列,第一个字段匹配,第二个文件具有大列
- terraform - 在 oci 中获取子网值时出现 Terraform 错误
- flutter - 如何在 id 匹配的颤振中显示列表
- angular - 节点伪造 AES 数据解密不返回原始数据。角/打字稿
- apache-spark - Spark SQL中的多列分区无法正常工作
- r - 具有随机布尔值的新列,同时控制每个类别的 TRUE/FALSE 比率
- javascript - 反应 - onClick setTimeout/如果有一个清除旧超时
- debian - 在 dpkg-buildpackage DEB_BUILD_OPTIONS=nocheck 之后手动执行检查